【问题标题】:Read from array one by one - VBScript从数组中一一读取 - VBScript
【发布时间】:2017-08-31 14:46:35
【问题描述】:

我正在尝试从文件中读取,创建一个数组,然后逐行(逐个元素)写入第二个文件,同时添加一些附加信息。下面的脚本将从文件中正确读取,但只会写入初始文件中的最后一行。如何一次从数组中写入一个? (我可以用不同的方式将内容写入第二个文件,但我想直接从数组中执行)。

Const ForReading = 1, ForWriting = 2, ForAppending = 3
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(input, 
ForReading)

Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine
    arrFields = Split(strLine, ",")
    If InStr(arrFields(1), "False") Then
        strContents = strContents & arrFields(0) & vbCrlf
    End If
Loop

objFile.Close

Set objFile = objFSO.CreateTextFile(output)

' below correctly outputs contents
' objFile.Write strContents 

For each i in arrFields
    objFile.Write arrFields(0)
    objFile.Write "Number" & vbCrlf
Next

objFile.Close

我的测试 csv 文件如下所示,从记事本中保存为“test.csv”。

1,FALSE
2,FALSE
3,FALSE
4,FALSE
5,FALSE
6,FALSE
7,FALSE
8,FALSE
9,FALSE
10,FALSE
11,FALSE
12,FALSE
13,TRUE

【问题讨论】:

  • 你不应该在For Each循环中写i而不是arrFields(0)吗?
  • 我是这么认为的,但是我收到一个错误,说下标 i 超出范围。我真的不知道那是什么意思。
  • 我不确定您从文件 1 向文件 2 添加了哪些额外信息。看起来您只是在读取一个文件并尝试在文件 2 中写入相同的文件。您能更具体一点吗在文件 2 中写入内容之前,您想要做什么处理?
  • 我只是新手,正在努力学习。我真的不想以任何特定的方式处理数据。唯一添加的是第一列数据之后的“数字”一词。 (输入文件是一个包含两列“1,false”等的csv。我想要一个包含两列“1 number”的输出文件)
  • 试试示例代码 - 希望你想要类似的东西

标签: arrays vbscript


【解决方案1】:

示例代码

Const ForReading = 1, ForWriting = 2, ForAppending = 3

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Users\pankaj.jaju\Desktop\test.csv", ForReading)

arrFields = Split(objFile.ReadAll, vbCrLf)
objFile.Close

Set objFile = objFSO.CreateTextFile("C:\Users\pankaj.jaju\Desktop\test1.txt")
For i = LBound(arrFields) To UBound(arrFields)
    objFile.Write "Number " & i+1 & "," & Split(arrFields(i),",")(0) & vbCrlf
Next
objFile.Close

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2020-03-28
    • 2015-02-28
    • 2019-12-08
    • 1970-01-01
    相关资源
    最近更新 更多