我有2个CSV文件,如下所示。
LogIn
:
empid,name 54321,xyz 12345,abc
TEAMLIST.csv
:
heading1,head2,head3,head4 54321-Process : GDPR_WBT,54321,Process : GDPR_WBT,TRUE 12345-Process : GDPR_WBT,12345,Process : GDPR_WBT,TRUE 54321-Fire Safety,54321,Fire Safety,FALSE 12345-Fire Safety,12345,Fire Safety,TRUE
下面是我的整个VBScript代码。问题是内部循环工作正常,但外部循环仅接收第一条记录[54321,xyz],而不是所有记录。无法理解原因。
DATA.csv
答案 0 :(得分:0)
在外循环的第一次迭代之后,内循环已经读取DATA.csv
到末尾。要在外循环的每次迭代中“倒带”该文件,您需要在外循环内部中打开/关闭该文件。
Do Until EMPLOYEE.AtEndOfStream
'...
Set DATA = fs.OpenTextFile("DATA.csv")
Do Until DATA.AtEndOfStream
'...
Loop
DATA.Close
Loop
或者(如果文件足够小)将其读入数组一次,并让内部循环遍历该数组。
DATA = Split(fs.OpenTextFile("DATA.csv").ReadAll, vbNewLine)
Do Until EMPLOYEE.AtEndOfStream
'...
For Each line2 In DATA
'...
Next
Loop
旁注1:在脚本中创建多个FileSystemObject
实例是没有意义的。在脚本的开头创建一个实例,并在其余的代码中使用该实例。
旁注2:Do While Not
很尴尬。请改用Do Until
。