ça marche! Serait-il possible de mettre un ";" à la place d'un espace dans l'ID récupéré? Merci
Version imprimable
ça marche! Serait-il possible de mettre un ";" à la place d'un espace dans l'ID récupéré? Merci
Re,
Fonction Replace()
J'ai inséré ligne 14mais ça ne marche pas...Code:strNew = Replace(strOld,"",";")
Re,
Code:
1
2 strNew = Replace(sID," ",";")
Je l'ai inséré dans le code suivantça ne marche pasCode:
1
2
3
4
5 Set Matches = oRegEx.Execute(sFile) For Each Match in Matches ' Itère la collection Matches. sID = sID & vbCrLf & Match.Value strNew = Replace(sID," ",";") Next
Salut
Es-tu sûr qu'il sagit d'un espace, cela ne pourait-il pas être une tabulation, Chr(9).
C'est un espace:
155 12345678901
155 32332332335
155 00000021122
Pas si sûr que toi.
J'ai fait un essais en VB6 que je ne parviens pas à reproduire en VBScript et je détecte bien une tabulation.
Rien ne te coût de faire un Replace avec critére Chr(9)
tu verras bien ce que cela donne ;)Citation:
Replace(sID, Chr(39),";")
Merci de ta réponse. J'ai une erreur lorsque j'exécute cette commande (cannot use parentheses when calling a sub)
Re,
Après ta boucle, tu fais bien un writeline strNew et non pas writeline sID ?
Voila le codeLorsque je met .writeLine strNew ça ne fonctionne pasCode:
1
2
3
4
5
6
7
8
9
10
11
12 Set Matches = oRegEx.Execute(sFile) For Each Match in Matches sID = sID & vbCrLf & Match.Value Replace(sID, Chr(39),";") Next 'MsgBox sID Set FSys = CreateObject("Scripting.FileSystemObject") Set MonFic = FSys.CreateTextFile("\\monserveur\fichier2.txt") 'Pour écrire dans le fichier texte With MonFic .writeLine sID End with
Re,
Remplace la ligne 4 par :
ouCode:
1
2 sID = Replace(sID, " ",";")
Code:
1
2 sID = Replace(sID, Chr(39),";")
Génial!! ça marche (sID = Replace(sID, " ",";")). Merci beaucoup. Par contre dans mon fichier de sortie j'ai la 1ère ligne vide. Comment fais-je pour la supprimer?
Maintenant que ma liste est complétée par tous mes ID. Je souhaiterais garder uniquement ceux dont le numéro catégorie m'intéresses.
Exemple :
155;12345678909
155;12789809808
155;78344449494
Je dois garder ceux avec la catégorie 3. Comment dois je procéder?
Merci par avance
Pour l'aide en ligne Où trouver l'aide en ligne pour VBScript ?
Voire la fonction MID
Cela serai plus pratique pour toi, tu n'aurais pas à attendre pour avoir une réponse, outre les mots clefs, tu y trouves des explications pour chacun d'eux ainsi que des exemples.
Rien ne t'empêchant de demander de l'aide si tu ne parviens pas à mettre en œuvre dans ton code.
J'ai essayéoù dois-je insérer le fait qu'il me faut les ID uniquement avec la catégorie 3 ou 7 ou autres?? MerciCode:sID = Mid(sID, 1, 16)
Re,
A priori, tu n'as pas (ou mal) lu l'aide sur la fonction Mid().
d'après l'aide :
Utilisez la fonction Mid
'5 est la position du caractère qui marque le début de la partie à extraire
'et 2 correspond au nombre de caractères à renvoyer)
MsgBox Mid("Vendredi", 5, 2) ' renvoie "re"
Si vous souhaitez récupérer toute la chaîne à partir du 5eme caractère, n'indiquez pas le dernier argument
MsgBox Mid("Vendredi", 5) 'Renvoie "redi"
Dans mon cas cela devrait donnernon?Code:sID = Mid(sID, 7, 1)
Bonjour,
Je participe au travail collectif ! ;)
sID = Mid(sID, 7, 1) te retourne la valeur du 7ème caractère ( 3 ou 7 dans l'exemple).
Il faut que tu utilise cette valeur comme une condition.
Déjà tu devrais utiliser une autre variable :
categorie = Mid(sID, 7, 1)
Style ...
Code:
1
2
3
4
5
6
7
8 [...] categorie = Mid(sID, 7, 1) [...] With MonFic if categorie = "3" Then 'Valeur à modifier selon catégorie recherchée .writeLine sID End If End with
Voici ce que ça donne au final :Mon fichier de sortie est vide alors que j'ai bien des ID avec catégorie 8.Code:
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 Dim FSO, LeFichier, CheminNomFichier, sFile Set fso = CreateObject("Scripting.FileSystemObject") Set FSys = CreateObject("Scripting.FileSystemObject") Set MonFic = FSys.CreateTextFile("\\monserveur\fichier2.txt") categorie = Mid(sID, 7, 1) Const ForReading = 1 CheminNomFichier = "\\monserveur\ficdepart.txt" Set LeFichier = fso.OpenTextFile(CheminNomFichier,ForReading) sFile = LeFichier.ReadAll Set oRegEx = New RegExp ' définition du pattern oRegEx.Pattern = "155 \d{11}" oRegEx.Global=True Set Matches = oRegEx.Execute(sFile) For Each Match in Matches sID = sID & vbCrLf & Match.Value sID = Replace(sID, " ",";") Next 'MsgBox sID 'Pour écrire dans le fichier texte With MonFic if categorie = "8" Then 'Valeur à modifier selon catégorie recherchée End If .writeLine sID End with Monfic.close