Bonjour à tous !
Je débute et les exemples sur le net n'ont rien donnés.

Voici mon problème :

2;DIVERS1
0003
2;DIVERS2

2;DIVERS3
0003

La ligne du milieu est volontairement vide car c'est un export BDD et le 0003 n'est pas toujours présent. Le fait est que pour 1 seul article, j'ai deux lignes.

Au début j'ai pensé à remplacer le vbCrLf par un ; mais comme VBS lit entièrement le fichier, le traite et l'écrit, sa me donne un truc du genre :

2;DIVERS1;0003;2;DIVERS2;2;DIVERS3;0003;

Or il faudrait que ce soit :

2;DIVERS1;0003
2;DIVERS2;
2;DIVERS3;0003

Voici mon code actuel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Const ForReading = 1
Const ForWriting = 2
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\EXPORT.TXT", ForReading)
 
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, vbLf, ";")
 
Set objFile = objFSO.OpenTextFile("C:\EXPORT.TXT", ForWriting)
objFile.WriteLine strNewText
objFile.Close
Et là je sèche un peu, je connais mal les fonctions VBS.
Peut-être faudrait-il lire la ligne, effacer le retour chariot (en y ajoutant un ';') et l'écrire dans le fichier à-la-volée mais je vois pas comment faire.
Merci pour votre aide