我有一个类似的txt文件:
GLP 07-Sep-2017 09:13 8.186 pH -59.5 mV 25.5 ºC ATC Manual EP PRO_ISM 6270340 Last cal.: 14-Aug-2017 14:51 S210 B625637220 EMF GLP 07-Sep-2017 08:43 8.180 pH -59.2 mV 25.5 ºC ATC Manual EP PRO_ISM 6270340 Last cal.: 14-Aug-2017 14:51 S210 B625637220 EMF GLP 07-Sep-2017 08:13 8.180 pH -59.2 mV 25.6 ºC ATC Manual EP PRO_ISM 6270340 Last cal.: 14-Aug-2017 14:51 S210 B625637220 EMF ...
我想获得:
07-Sep-2017,08:43, ,8.180 pH,-59.2 mV,25.5 ºC ATC 07-Sep-2017,08:13, ,8.180 pH,-59.2 mV,25.6 ºC ATC 07-Sep-2017,07:43, ,8.180 pH,-59.2 mV,25.6 ºC ATC
我已经在下面写了VBScript,但是我在同一行上获得了所有内容,例如:
,07-Sep-2017,08:43, ,8.180 pH,-59.2 mV,25.5 ºC ATC,07-Sep-2017,08:13, ,8.180 pH,-59.2 mV,25.6 ºC ATC,07-Sep-2017,07:43, ,8.180 pH,-59.2 mV,25.6 ºC ATC
我没有找到在第一次阻挡之后放置vbCrLf
的方法。
你有什么想法吗?
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("C:\Users\Jean\Desktop\pH\M092735.TXT", 1)
Set objTextFile2 = objFSO.CreateTextFile("C:\Users\Jean\Desktop\pH\ph.txt", 8)
Do While objTextFile.AtEndOfStream = False
Line = objTextFile.ReadLine
If Line = "GLP" Then
For i = 1 To 6
strLine = strLine & "," & objTextFile.ReadLine
Next
strLine2 = strLine & vbCrLf
End If
Loop
objTextFile2.write strLine2
objTextFile.Close
objTextFile2.Close
答案 0 :(得分:1)
我只是告诉你问题的重点是什么:
比较。我无法看到这是如何运作的。 ReadLine
将返回包含尾随空格的字符串。需要将比较更改为
If Left(Line, 3) = "GLP" Then
strLine
未重置。它将先前的结果连接到下一个结果,因此数据呈指数增长。在If
和For
声明
strLine = ""
仅保存最后一行。要保存所有行,需要将strLine2
语句更改为
strLine2 = strLine2 & strLine & vbCrLf
或者,您可以在循环后删除写入并将连接更改为
objTextFile2.WriteLine strLine
您用于度数的符号是男性序数指示符(Unicode U + 00BA),而不是度数符号(Unicode U + 00B0)。这是一个非常常见的错误。您会注意到,当您查看数据时,有时它会显示为带有下划线的度数符号。
答案 1 :(得分:0)
非常感谢!它很完美。
strLine = ""
事情是
这里是完整的工作代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("C:\Users\Jean\Desktop\pH\M092735.TXT", 1)
Set objTextFile2 = objFSO.CreateTextFile("C:\Users\Jean\Desktop\pH\ph.txt", 8)
Do While objTextFile.AtEndOfStream=false
Line = objTextFile.ReadLine
If Line = "GLP" Then
strLine = ""
For i = 1 to 6
strLine = strLine & "," & objTextFile.ReadLine
Next
strLine2 = strLine2 & strLine & vbcrlf
End If
Loop
objTextFile2.writeline strLine2
objTextFile.Close
objTextFile2.Close