Écrire dans un fichier texte

Superpat2222 Messages postés 2 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 5 septembre 2009 - 3 sept. 2009 à 15:46
Superpat2222 Messages postés 2 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 5 septembre 2009 - 5 sept. 2009 à 19:49
Bonjour, j'ai écrit un code en VSB afin d'ouvrir un fichier bancaire et modifier un chiffre, ce code fonctionne correctement, mais je veux l'améliorer : Le chiffre de la carte sera recherché à la fin du fichier et remplacer qu'une fois par le solde. Pourriez-vous me modifier les dernières lignes.
De plus une fois celui-ci modifié, je voudrais le lancer.
Merci.

'Coucou.vbs
Set objDialog = CreateObject("UserAccounts.CommonDialog")

'Filtre des fichiers
objDialog.Filter = "Money|*.ofx|Tous les fichiers|*.*"
objDialog.Flags = &H0200
objDialog.FilterIndex = 1
objDialog.InitialDir = "D:\downloads"
intResult = objDialog.ShowOpen

If intResult = 0 Then
Wscript.Quit
Else

End If

'La variable est : repertoire
repertoire = objDialog.FileName

solde = inputbox("Donnez le solde du compte", "Solde du compte")
carte = inputbox("Donnez le solde de la carte", "Solde de la carte")
msgbox "Soldes des comptes : [" & solde & "] + [" & carte & "]"

Const ForReading 1, ForWriting 2, ForAppending = 8
Dim fso, f
Dim st
Set fso = CreateObject("Scripting.FileSystemObject")

'Ouverture et lecture du fichier à modifier
Set f = fso.OpenTextFile(repertoire, ForReading)
st = f.readAll
f.Close

'ecriture du fichier modifier... aprés avoir remplacer "Carte" par "Solde".
Set f = fso.OpenTextFile(repertoire, ForWriting)
f.Write replace(st,carte,solde,1,-1,0)
f.close

1 réponse

Superpat2222 Messages postés 2 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 5 septembre 2009
5 sept. 2009 à 19:49
J'ai trouvé :

Dim fso, Fichier, FR, textCont, Carte, Solde, Compteur, Ligne
Const ForReading 1, ForWriting 2

Solde = "+9999.99"
Carte = "-25.30"
Fichier = "C:\Documents and Settings\Superpat\Bureau\CA20090903_1029.ofx"
Compteur = 0
Ligne=0

Set fso = CreateObject("Scripting.FileSystemObject")
Set FR = fso.opentextfile(fichier, 1, True)

Do While Not Fr.AtEndOfStream
chaine = Fr.readline()
If InStr(1, chaine, carte) > 0 Then
ligne = Fr.Line
End If
Loop
FR.close
Set FR = Nothing
Set fso = Nothing

'Exemple d'après Sympatix.
'Cet exemple ouvre le fichier *.ocx, lit 'chaque ligne, si elle ressemble à "Ligne à modifier",
'copie la chaine "Ligne modifiée" dans un nouveau fichier nommé titi.txt, sinon, recopie simplement
'la ligne lue. A la fin, le fichier titi.txt est renommé en *.ocx. Et la ligne "Ligne à modifier" est
'bien remplacée par "Ligne modifiée".


'-------Début du script de copie de fichier- Remplacement--------
Const Pour_Lire = 1
Const Pour_Ecrire = 2
AModif = testCont
Modif = solde
Fichier1 = Fichier
Fichier2 = "C:\Documents and Settings\Superpat\Bureau\titi.txt"

Set FSO = CreateObject("Scripting.FileSystemObject")
Set FR = FSO.OpenTextFile (Fichier1, Pour_Lire)
Set F2 = FSO.CreateTextFile (Fichier2, True, False)

Do Until FR.AtEndOfStream
Lit = FR.ReadLine
' WScript.Echo "10 : " & lit
' WScript.Echo "11 : " & ligne '93

If Ligne=FR.Line Then
F2.WriteLine ""& Modif
Else
F2.WriteLine Lit
End If
Loop
Set FR = Nothing
Set F2 = Nothing
fso.DeleteFile Fichier1
FSO.MoveFile Fichier2, Fichier1
'--------Fin du script--------

Merci à tous
0
Rejoignez-nous