Traitement élaboré d'un fichier texte - VB/VBA/VBS - Programmation
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.
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 !
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
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 @+
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 jai un gros pb : Je dois faire un truc qui tourne pour la fin de la semaine en VBS
Explication :
Jai 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.