У меня есть 2 файла CSV, как показано ниже.
TEAMLIST.csv
:
empid,name
54321,xyz
12345,abc
DATA.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], а не все записи.Не в состоянии понять, почему.
Option Explicit
Dim fs
Dim fs2
Set fs = CreateObject("Scripting.FileSystemObject")
Set fs2 = CreateObject("Scripting.FileSystemObject")
Dim EMPLOYEE
Dim DATA
Set EMPLOYEE = fs.OpenTextFile("TEAMLIST.csv")
Set DATA = fs2.OpenTextFile("DATA.csv")
Dim counter, line, EMP_ARRAY
Dim counter2, line2, DATA_ARRAY
counter = 0
counter2 = 0
Do While Not EMPLOYEE.AtEndOfStream
line = EMPLOYEE.ReadLine
counter = counter + 1
If counter > 1 Then
EMP_ARRAY = Split(line, ",")
Do While Not DATA.AtEndOfStream '### DATA LOOP STARTS ###
line2 = DATA.ReadLine
counter2 = counter2 + 1
If counter2 > 1 Then
DATA_ARRAY = Split(line2, ",")
If EMP_ARRAY(0) = DATA_ARRAY(1) Then
If DATA_ARRAY(2) = "Process : GDPR_WBT" Then
If DATA_ARRAY(3) = "" Then
DATA_ARRAY(3) = "FALSE"
End If
WScript.Echo EMP_ARRAY(0) & "--" & EMP_ARRAY(1) & "--" & DATA_ARRAY(2) & "--" & DATA_ARRAY(3)
End If
If DATA_ARRAY(2) = "Fire Safety" Then
If DATA_ARRAY(3) = "" Then
DATA_ARRAY(3) = "FALSE"
End If
WScript.Echo EMP_ARRAY(0) & "--" & EMP_ARRAY(1) & "--" & DATA_ARRAY(2) & "--" & DATA_ARRAY(3)
End If
End If
End If
Loop '### DATA LOOP ENDS ###
End If
Loop
EMPLOYEE.Close
DATA.Close
Set EMPLOYEE = Nothing
Set DATA = Nothing
Set fs = Nothing
Set fs2 = Nothing