arrays - For Next 循环中每次迭代 VBS 中的新数组

标签 arrays vbscript nested

我有一段代码可以打开文件夹中的每个文本文件,我不仅想将文件名放入数组中,还想将文件内的文本拆分到数组中,如下所示:

i = 0
n = 1
For Each File In Folder
    i = i + 1
    Dim UserArray & i()
    Set openedFile = fso.OpenTextFile(File)
    Do Until openedFile.AtEndOfStream 
        Line = openedFile.ReadLine
        ReDim Preserve UserArray & i(n)
        UserArray & i(n) = Line
        n = n + 1
    Loop
    n = 0
Loop

这个想法是,每一行稍后都会被 strComp 到来自不同文本文件的另一个行数组。 因此每个文件都需要为其文本内容创建一个唯一的数组名称,并且任何给定文件夹中的文件数量各不相同。

以上不起作用,有什么想法吗?

最佳答案

您的代码中存在语法错误(第 5、9、10 行 - 通过使用执行语句修复,该语句允许您在运行时使用不同名称动态声明变量)以及变量拼写错误(第 8 行)。

附注我不会对此处应用的逻辑进行任何更改。只是想纠正错误。

i = 0
n = 0                                                   'initialised to 0
For Each File In Folder
    i = i + 1
    Execute "Dim UserArray"&i&"()"                      'used execute statement to declare arrays with new names based on the value of i for each file
    Set openedFile = fso.OpenTextFile(File)
    Do Until openedFile.AtEndOfStream 
        Line = openedFile.ReadLine                      'corrected the spelling mistake here
        Execute "ReDim Preserve UserArray"&i&"("&n&")"
        Execute "UserArray"&i&"("&n&")="&Line
        n = n + 1
    Loop
    n = 0
Loop

在此代码之后,您应该为第一个文件提供 UserArray1,为第二个文件提供 UserArray2,依此类推...

关于arrays - For Next 循环中每次迭代 VBS 中的新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45406134/

相关文章:

javascript - 选择多个数组元素javascript

java - 程序显示最高值但不显示最高值的人

c - 更新嵌套 C 结构数组的正确方法是什么?

python - 从嵌套的字典python中获取键值

c++ - 正在编译具有相同迭代器的嵌套循环,这是为什么?

C 数组的数组 : why do I need to cast TO const here?

vbscript - 将通过 vbscript (cscript) 处理的输出重定向到文件

internet-explorer - 使用 vbscript 自动滚动页面

winapi - 如何编写用于组织我的桌面窗口的脚本? (操作系统)

list - 如何修改嵌套自定义数据类型中的列表值?