使用 MsgBox 显示文本文件

Display text file using 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() 行:

Error: Invalid procedure call or argument

将数据写入文本文件后,您可以关闭它,然后按照以下步骤操作:

一个。再次以读取模式打开文件并为其设置一个对象引用:

Set objFile = fso.OpenTextFile(ScriptFolder & "\" & FileNameStep & ".txt",1)

乙。使用readall()方法读取文件内容并存入变量:

tempData = objFile.readAll()

C。关闭文件并使用 'Msgbox'

显示内容
objFile.Close
MsgBox tempData

如果要在文本文件中逐行显示数据,可以使用readline()方法并将步骤B修改为:

While not fso.atEndOfStream
    tempData = fso.readline()
    Msgbox tempData
Wend

编辑 2:对于问题的第二部分:

您不应使用 "array" 一词作为变量名,因为它是 vbscript 中的关键字。另外,您不能使用 .Add 在数组中添加元素,因为我们在这里讨论的是数组而不是数组列表。

您可以用以下代码替换您的代码:

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)