bonjour à tous,
Je cherche à formater un fichier txt afin de le rendre facilement interprétable par Excel; En somme, je dispose d'un fichier txt (issu d'une extraction d'une application) et les données sont séparées par un nombre variable d'espace.
Je cherche donc à remplacer ce nombre variable (de 4 à 18) d'espace par un seul code caractère (";/"). De cette manière Excel pour comprendre le fichier txt en séparer les colones grace au caractère ";/".

J'ai déjà rédigé un script avec l'aide de pusieurs messages du forum, le voici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
const ForAppending = 8, ForWriting = 2, forReading= 1
 
Set fsoFichierSource=CreateObject("Scripting.FileSystemObject")
Set txt_source=fsoFichierSource.OpenTextFile("fichier-ref.txt", forReading)
Set txt_dest=fsoFichierSource.CreateTextFile("fichier-res.txt", ForWtriting)
 
set regex = new regExp
regex.pattern="( ){2,}" 'car il y a des noms et prénoms de personnes qui sont séparés par un seul espace
regex.global = true
 
do while not txt_source.AtEndOfStream
 
strLigne=txt_source.ReadLine
 
set Matches = regex.Execute(strligne)
For Each Match in Matches
      RetStr = Match.Value
Next
strligne= Replace(strligne, RetStr ,";/")
 
txt_dest.writeline strligne
 
loop
'fin de la boucle
txt_dest.close
txt_source.Close
msgbox("fin")
Le problème est le suivant :
le script ne remplace pas toutes les occurences de plus de 2 espaces dans le fichier; mais en plus lorsqu'il supprime des occurences d'espaces, il lui arrive de ne pas tout prendre :
Par exemple, la chaine de caractère suivante :
"Emet Gest" (il y a 23 espaces entre "Emet" et "Gest") devient "Emet;/ Gest" (il reste encore 7 espaces qui doivent être supprimés entre les deux mots)

quelqu'un pourrait'il m'expliquer la raison de ce résultat? Il y a-t-il un nombre maximum de caractère qui peuvent être détécté par RegEx??

merci d'avance