我有多个名称为
的文件c123we_1014_A1_45333 c123we_1014_A2_45333 c123we_1014_A3_45333
我需要的是只获取第三个参数并使用消息框显示它。 我所做的是获取第三个参数并将其写入文本文件。
For Each filelog In FileList
LogFile = Split(filelog, "~")(1)
Set otf = fso.OpenTextFile("C:\Data\" & LogFile, 1)
sFile = Split(LogFile, "_")
CurStep = sFile(3)
FileNameStep = LotId & "_" & "Step"
ScriptPath = Mid(ScriptFolder, 1, Len(ScriptFolder) - 8)
If Not fso.FileExists(ScriptFolder & "\" & FileNameStep & ".txt") Then
Set ctf = fso.CreateTextFile(ScriptFolder & "\" & FileNameStep & ".txt", True)
ctf.Close
End If
Set otf = fso.OpenTextFile(ScriptFolder & "\" & FileNameStep & ".txt", 8)
otf.Writeline "Current - " & CurStep
otf.Close
Next
我的文本文件输出如下:
Current - A1 Current - A2 Current - A3
我坚持如何使用消息框显示文本文件的内容。
我也尝试使用数组而不是将其写入txt文件,这比使用txt文件更简单。我的代码如下:
For Each filelog In FileList
LogFile = Split(filelog, "~")(1)
Set otf = fso.OpenTextFile("C:\Data\" & LogFile, 1)
l = 0
MsgBox FileList.Count
Do While l < FileList.Count
sFile = Split(LogFile, "_")
CurStep = sFile(4)
array.Add CurStep
l = l + 1
Loop
Next
MsgBox Join(array, vbNewLine)
但是得到了错误。错误发生在MsgBox Join()
行:
错误:无效的过程调用或参数
答案 0 :(得分:1)
将数据写入文本文件后,可以将其关闭,然后按照以下步骤操作:
一个。再次以“读取”模式打开文件并设置对象引用:
Set objFile = fso.OpenTextFile(ScriptFolder & "\" & FileNameStep & ".txt",1)
B中。使用 readall()方法读取文件内容并将其存储在变量中:
tempData = objFile.readAll()
℃。关闭文件并使用&#39; Msgbox&#39;
显示内容objFile.Close
MsgBox tempData
如果要逐行显示文本文件中的数据,可以使用 readline()方法并将步骤B修改为:
While not fso.atEndOfStream
tempData = fso.readline()
Msgbox tempData
Wend
编辑2:对于问题的第二部分:
你不应该使用&#34; array&#34;作为变量名,因为它是vbscript中的关键字。另外,你不使用.Add在数组中添加元素,因为我们在这里讨论的是数组而不是arraylists。
您可以使用以下代码替换您的代码:
Dim intCtr: intCtr=-1
Dim tempArr()
For Each filelog in FileList
LogFile = Split(filelog, "~")(1)
Set otf = fso.OpenTextFile("C:\Data\" & LogFile, 1)
l = 0
msgbox FileList.Count
do while l < FileList.Count
intCtr=intCtr+1
sFile = Split(LogFile, "_")
CurStep = sFile(4)
Redim preserve tempArr(intCtr)
tempArr(intCtr)=CurStep
l = l + 1
Loop
next
MsgBox Join(tempArr, vbNewLine)