Traitement élaboré d'un fichier texte

Traitement élaboré d'un fichier texte - VB/VBA/VBS - Programmation

Marsh Posté le 11-04-2006 à 19:54:40    

Bonjour à tous,
 
Je suis plus que novice en VBS, puisque je n'en ai jamais fait…
 
Par contre j’ai un gros pb : Je dois faire un truc qui tourne pour la fin de la semaine en VBS…
 
Explication :
 
J’ai un fichier texte qui aura toujours le même nom "posi.txt" de plus de 10000 lignes, ou chaque ligne commence par 5 caractères : 00000. Mais ces 5 zéros peuvent apparaitre plus loin sur certaines lignes, et ne doivent en aucun cas être modifiés…
 
Les 5 chiffres de substitutions sont inclus dans le nom de la machine (%computername%) qui est du format ABC1234D, ou :
• ABC : Une suite de 3 lettres,
• 1234 : la suite de 4 chiffres qui nous intéresse,
• D : Une lettre quelconque.
Le code à 5 chiffres est une concaténation du chiffre 7 et des 4 chiffres du nom de la machine.
Dans l'exemple, "00000" devra être remplacé par "71234".
 
Pour résumer :
J'ai un fichier posi.txt:
00000359453025TEST NUMERO 1  00000MACHIN00000
00000459753028TEST NUMERO 2  00000TRUC00000
00000654643430TEST NUMERO 3  00000BIDULE00000
…etc
 
Je copie ce fichier sur une machine qui s'appel "MTU5068Z"
Je traite le fichier précédemment copié avec la moulinette en VBS, et il en ressort:
75068359453025TEST NUMERO 1  00000MACHIN00000
75068459753028TEST NUMERO 2  00000TRUC00000
75068654643430TEST NUMERO 3  00000BIDULE00000
…etc
 
Cela fait plus d'une semaine que je test tout un tas de truc, mais ca ne ressemble à rien, et je n'ai pas les compétences pour… Alors si quelqu'un pouvait me sauver la mise…
 
Les points les plus compliques pour moi sont :
• modification uniquement des 5 premiers caractères de chaque ligne
• isolement de la chaine numérique du nom machine, et concaténation dans une variable.
 
Merci d'avance pour votre aide.

Reply

Marsh Posté le 11-04-2006 à 19:54:40   

Reply

Marsh Posté le 11-04-2006 à 23:55:57    

En fait, j'ai reussi à avancer...
Pour isoler le code numerique du nom machine, j'utilise des filtres Gauche/Droite, avec l'hypothese que le vbs ne tournera que sur des machine dont le nom est de la forme ABC1234D
 
J'ai reussi ensuite à modifier le fichier texte, mais pas à ne modifier que les 5 premiers caractères de chaque ligne.
 
Donc si quelqu'un sais comment ne traiter que les 5 premiers caractères de chaque ligne, je suis preneur.
 
Merci d'avance.

Reply

Marsh Posté le 12-04-2006 à 10:08:58    

hello,
 
je crois que pour une fois c'est moi qui peut aider un peu, ca va me changer !  :pt1cable:  
 
Le principe n'est pas de modifier les 5 premiers caractères mais d'extraire les caractères de la 6ème position à la fin de la ligne
et de les concaténer à la chaine "7" + 4 caractères du nom de la machine pour obtenir la nouvelle ligne
 
MID(chaine, position de départ, nb de caractères à renvoyer)
en combinant avec la fonction LEN(chaine) pour connaitre la longueur de la ligne
 
en gros :
 
resultat = "7" & numéro machine & Mid(ligne a traiter, 6, Len(ligne à traiter))
 
Voila en espérant avoir été claire et avoir pu aider un peu

Reply

Marsh Posté le 13-04-2006 à 09:22:13    

Salut à toi Parmenion,
 
En effet c'est en gros ce que j'ai fait... J'ai tout de même réussi à faire un truc qui tourne complètement...
 
Je te remercie pour ton post... au moins quelqu'un aura essayé de donner un coup de mains...
 
Merci, est @+…

Reply

Marsh Posté le 13-04-2006 à 09:23:29    

P.S. : tu avais effectivement été tres claire...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed