我有 txt 和 csv 文件要每行读取。一行以 . 结尾CR-LF
。但是在某些文件中,有CR
和没有LF
; 相反,下一个物理行以FF
. UFT 12 将它们一起读取,就像是一行一样。我使用 fso 读取文件:
Dim FileRead : Set FileRead = fso.OpenTextFile(file1)
Dim file2Read : Set file2Read = fso.OpenTextFile(file2)
FileStrR = FileRead.ReadLine
File2StrR = FileRead.ReadLine
我需要将这些文件的每一行与另一个文本文件进行比较:
if FileStrR = File2Str Then...
我试图将FileStrR
as 数组分开:
FileStrA = REPLACE(FileStrR, ChrW(12),"**")
strarray = split(FileStrA,"**")
For h = 0 to UBound(strarray)
FileStr = strarray(h)
if FileStr = File2Str Then...
...
但是在这里,我坚持阅读 File2 的下一行,以与之后的内容进行比较FF
。
更新 试图跳线:
Do Until fileRead.AtEndOfStream
ln=ln+1
FileStrA = REPLACE(FileStrR, ChrW(12),"**")
strarray = split(FileStrA,"**")
For h = 0 to UBound(strarray)
FileStr = strarray(h)
For s=1 to (ln+h)-1
File2Read.SkipLine
Next
print ln&"-"&ln+h&"-"&h
File2Str = File2Read.ReadLine
if FileStr1 = File2Str Then...
print "F1: "&FileStr
print "F2: "&File2str
Next
Loop
在这种和平的代码中,该行print ln&"-"&ln+h&"-"&h
打印正确的数字(ln 应该是当前读取的行号)。但是字符串 print ( print "F1: "&FileStr & VBNewLine & "F2: "&File2str
) 给出了以下内容:
F1: 2|8122|TX|...
F2: 4|8123|FG|...
似乎即使ln+h
是 'ln' 而 'h' 为 0,但又fso
跳过了一行。