1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| const ForReading = 1
const ForWriting = 2
const ForAppending = 8
Const ModeAscii = 0
Const ModeUnicode = -1
public function LitFichier(ByRef fic)
dim fso, ofso, flow, line, StreamR, StreamW, f, cpte
cpte = 0
ind = 0
set fso = CreateObject( "Scripting.FileSystemObject" )
'set StreamW = fso.OpenTextFile(fileout, ForAppending,true)
set StreamR = fso.OpenTextFile(fic, ForReading, false)
do while StreamR.AtEndOfStream <> true 'tant que l'on est pas à la fin du fichier
line = StreamR.Readline 'lis la ligne
cpte = StreamR.Line 'compte le nb de ligne dans le fichier
codeenr = mid(line, 1, 2) 'Code enregistrement (01,04,05,07)
sBank = mid(line, 3,5) 'Banque
sGuichet = mid(line, 12, 5) 'Guichet
sCompte = mid(line, 22,11) 'Compte
sDateINI = mid(line, 35,6) 'Date Solde Initial
sSoldeINI = mid(line, 91, 14)
TmpAcc = sBank & sGuichet & sCompte 'RIB Complet
if codeenr = "07" then
codeenr = mid(line, 1, 2) 'Code enregistrement (01,04,05,07)
sBank = mid(line, 3,5) 'Banque
sGuichet = mid(line, 12, 5) 'Guichet
sCompte = mid(line, 22,11) 'Compte
sDateFIN = mid(line, 35,6) 'Date Solde Initial
sSoldeFIN = mid(line, 91, 14)
end if
REM 'condition à mettre: si le code enregistrement lu de la ligne est un 01 (entete) et que l'on trouve un "07" (enregistrement de fin):
REM on ecrit la ligne 01,04,05 et 07 puis on ferme le fichier
REM if left(line,2) = "01" then ' test si l'enregistrement est un 01(entete)
ind = ind + 1 'indice du fichier
fileout = "C:\_TMP\" & "AAAC"& "_" & TmpAcc & "_" & ind & ".dat" 'nom du fichier de sortie
if not fso.FileExists(fileout) then 'si le fichier n'existe pas...
set StreamW = fso.CreateTextFile(fileout,ForWriting, ModeAscii) 'on le cree....
StreamW.Write(line) 'ecrit la ligne
StreamW.Close 'ferme le flot en ecriture
else 'sinon
set StreamW = fso.OpenTextFile(fileout,ForAppending, ModeAscii) 'ouvre le fichier
StreamW.Write(line)'ecrit la ligne...
StreamW.Close'ferme le flot en ecriture
end if
end if
'StreamW.Close
loop
set fso = nothing
end function |