Votre question

analyser et restructurer un fichier texte(moulinette.bat)

Tags :
  • moulinette
  • .bat
  • Programmation
Dernière réponse : dans Programmation
15 Mai 2012 23:16:06

Bonjour a tous et merci d'avance mes amis

Je souhaiterais faire la chose suivante:
je possède un fichier texte "Extrait1" qui possède plusieurs nombre de lignes avec une structure bien particulière pour être plus concret un exemple:

070001706000 72854698532699150512 CHEQ
070001710400 84256325532699150512 CINO
070001765400 85689521442199150512 DEC

çàd un fichier de log qui se rempli au fur et à mesure.

Ce fichier ne me convient pas dans sa forme "A" et j'aimerais qu'il apparaisse après transformation comme suit:

070001706000 72854698532607150512 CHEQ
070001710400 84256325532652150512 CINO
070001765400 85689521442132150512 DEC

çàd s'il trouve 6000 il modifie 99---->07 et s'il trouve 0400 il modifie 99---->52 et s'il trouve 5400 il modifie 99--->32 etc...
sachant que 6000,0400 et 5400 sont trouver à la position après 8 chiffres et 99 se trouve à la position 25 ( 25 chiffres ou espace)
puis sauvegarde dans un nouveau fichier texte "Extrait2"


J'aimerais faire un programme moulinette batch tout bête faisant cela et travaillant toutes les 10 minutes par exemple.

Comment puis-je opérer proprement?
ou bien comment faire une moulinette avec exel ou access ?
Merciiiiiiiiiiiiii beaucoup cher amis

Autres pages sur : analyser restructurer fichier texte moulinette bat

a b L Programmation
16 Mai 2012 22:24:32

Je te suggère de le faire en python, car c'est clairement le plus simple.

En batch, il te faut utiliser le FOR /F, et pour le découpage découper les variables avec %Variable:~8,4%
Sous Excel, tu peux faire une formule avec une extraction, des test et une concaténation.

En python, je te fais l'exemple pour 6000:
  1. #ouverture de fichier en lecture
  2. contenu = open(r'C:\toto\toto.txt','r').read()
  3. listeLignes = contenu.split('\n')
  4. nouvelleListeLignes = []
  5.  
  6. #Boucle sur toutes les lignes
  7. for ligne in listeLigne:
  8. codeTest = ligne[8:12]
  9.  
  10. nouvelleLigne = ligne
  11. if codeTest == '6000':
  12. nouvelleLigne[25:27]='07'
  13.  
  14. # Ajout de la nouvelle ligne dans la liste
  15. nouvelleListeLignes.append(nouvelleLigne)
  16.  
  17. # Ouverture de fichier en écriture
  18. nouveauFichier = open(r'C:\toto\toto.txt','w')
  19. nouveauContenu = '\n'.join(nouvelleListeLignes)
  20. nouveauFichier.write(nouveauContenu)
  21. nouveauFichier.close()
(code non testé)
m
0
l
16 Mai 2012 23:08:40

Merci cher ami
mais je ne peux pas exécuter votre code :/ 
m
0
l
a c 232 L Programmation
17 Mai 2012 09:52:29

Bon, tu vas créer combien de fois le même sujet ? J'en ai marre de supprimer tous tes messages en triple !

Et Cricky t'as écrit que c'était du python, alors tu cherches 2s sur le net comment exécuter du python.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS