使用MsgBox显示文本文件

时间:2017-05-25 01:39:02

标签: arrays vbscript msgbox

我有多个名称为

的文件
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()行:

  

错误:无效的过程调用或参数

1 个答案:

答案 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)