vbs 逐行读取文本文件并用逗号分割

Posted

技术标签:

【中文标题】vbs 逐行读取文本文件并用逗号分割【英文标题】:vbs read text file line by line and split it with comma 【发布时间】:2019-03-26 00:55:31 【问题描述】:

有一个包含此内容的文本文件

名称1,21 名称2,33 姓名4,22

例如,我如何读取并将其存储在其他变量中

name= name1
age= 21

打印出来并循环直到这个文件结束

打印出来会是

姓名:name1 21 岁

这是我尝试过的,但我得到的消息框是空白的

Const ForReading = 1 

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objTextFile = objFSO.OpenTextFile("C:\my.txt", ForReading) 

strOutput = ""

Do Until objTextFile.AtEndOfStream 
    strNextLine = objTextFile.Readline 
    arrServiceList = Split(strNextLine , ";")

    If (UBound(arrServiceList) >= 6) Then
        strOutput = strOutput & "name: " & arrServiceList(0) & ", age: " & arrServiceList(6) & vbCrLf
    End If
Loop 

WScript.Echo strOutput

我得到的只是一个空白框

【问题讨论】:

您在; 上进行拆分,但您的文本中有, 一旦你解决了上面提到的split 问题,你的数组arrServiceList 将只包含2个元素(除非你提供了文件的缩减版本并且上面有更多数据元素每行),因此引用arrServiceList(6) 将导致数组失败。 【参考方案1】:

终于搞定了,分享一下,下面是我的代码:

Set fso=CreateObject("Scripting.FileSystemObject")
filename = "C:\my.txt"
listFile = fso.OpenTextFile(filename).ReadAll
listLines = Split(listFile, vbCrLf)

i = 0

For Each line In listLines
Dim arr
arr = Split(line,",")
WScript.Echo CStr(i) + " Name: " + arr(1)+ " age: "+arr(0)
Next

不确定这是否是最好的解决方案,有人变得更好了吗? 首先我将它逐行拆分,然后从那一行我用逗号拆分它

【讨论】:

以上是关于vbs 逐行读取文本文件并用逗号分割的主要内容,如果未能解决你的问题,请参考以下文章

在 Fortran 中逐行读取逗号分隔的文本文件

vbs逐行读取txt文件并且逐行复制文件到其它文件中

Python逐行读取txt文本,按符合分割词并逐行写入txt

大数据量文本怎么通过adodb.stream逐行读取(VBS)

vbs读取指定的文本内容

读取文本文件中的内容并使用 VBS 将其替换为另一个文本文件中的指定文本