Z tym, że plik jest wczytywany cały to racja, część kodu odpowiedzialna za obrabianie wygląda tak:
Set txtFile = fso.OpenTextFile(pathSource & "\sales_fbl5n.txt") 'otwiera txt do czytania
Set salesFile = fso.CreateTextFile(pathTABLES & "\" & dataAA & "_sales.csv") 'output csv do ktorego kopiuje wszystko
salesFile.WriteLine ( """period""" & "," & _
"""plant""" & "," &_
"""salesAm""" )
z=0 ' ideks linii z pliku txt
Do Until txtFile.AtEndOfStream
line = txtFile.ReadLine
arrLine = split(line,"|")
If z>10 and UBound(arrLine)>11 Then
If trim(arrLine(12)) <> "" AND trim(arrLine(12)) <> "Plnt" Then
if left(trim(arrLine(12)),1)="0" then
plant = right(trim(arrLine(12)),3)
else
plant = trim(arrLine(12))
end if
'period = trim(arrLine(11)) & right("0" & trim(arrLine(10)), 2)
salesAm = trim(arrLine(5))
IF right(salesAm,1)="-" THEN
salesAm = cdbl(left(salesAm,len(salesAm)-1)*-1)
ELSE
IF salesAm <> "" THEN
salesAm = cdbl(salesAm)
ELSE
salesAm = 0
END IF
END IF
salesFile.WriteLine(period & "," & plant & "," & salesAm)
End If
End If
z=z+1
Loop
salesFile.close
txtFile.close
Dodaję jeszcze fragment z pliku txt wraz z nazwami kolumn:
| DocumentNo|Doc..Date |PK|Pstng Date| Amt in loc.cur.|LCurr|BusA|Typ|Year/month| Period|Year|Plnt|Ref. Key 1 |
-------------------------------------------------------------------------------------------------------------------
| 2000007189|03.01.2020|01|03.01.2020| 2,368.12 |USD |USCD|DR |2020/01 | 1|2020|7209|72096047 |
| 2000008904|03.01.2020|01|03.01.2020| 4,669.23 |USD |USCD|DR |2020/01 | 1|2020|7181|71811239 |