Supprimer ": :" dans un document.txt
Jillow
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai un ficher in_4799 , et je voudrais faire un script en C pour supprimer automatiquement quand il y a "::" qui suit un + quand la ligne commence par PCI.
Voici a quoi ressemble le ficher in_4799 :
PCI+24+AS PER INVOICE::CONTAINER NO.?::GLDU9388840::AGENT SEAL NO.?::IN0344370::CUSTOM SEAL NO.:?:2222486'
PCI+24+::CONTAINER NO.?:2::FCIU4781107 /:20 FT:::AGENT SEAL NO.?::IN0423237'
PCI+24+:CUSTOM SEAL NO.:?:2222485'
CST+1+T:120+T2:105++732599:169'
GID+6+1:PK'
FTX+AAA+++ALUMINIUM PNEUMATIC MECHANICAL PART'
MEA+AAE+G+KGM:226'
MEA+AAE+AAW+MTQ:37.351'
SGP+GLDU9388840+1'
PCI+24+AS PER INVOICE::CONTAINER NO.?::GLDU9388840::AGENT SEAL NO.?::IN0344370::CUSTOM SEAL NO.:?:2222486'
PCI+24+::CONTAINER NO.?:2::FCIU4781107 /:20 FT:::AGENT SEAL NO.?::IN0423237'
PCI+24+:CUSTOM SEAL NO.:?:2222485'
CST+1+T:120+T2:105++841290:169'
GID+7+5:PK'
FTX+AAA+++DUCTILE IRON CAST ARTICLES'
MEA+AAE+G+KGM:2346.6'
MEA+AAE+AAW+MTQ:37.351'
SGP+GLDU9388840+5'
PCI+24+AS PER INVOICE::CONTAINER NO.?::GLDU9388840::AGENT SEAL NO.?::IN0344370::CUSTOM SEAL NO.:?:2222486'
PCI+24+::CONTAINER NO.?:2::FCIU4781107 /:20 FT:::AGENT SEAL NO.?::IN0423237'
PCI+24+:CUSTOM SEAL NO.:?:2222485'
Après le script le fichier devrait ressembler a ça :
PCI+24+AS PER INVOICE::CONTAINER NO.?::GLDU9388840::AGENT SEAL NO.?::IN0344370::CUSTOM SEAL NO.:?:2222486'
PCI+24+CONTAINER NO.?:2::FCIU4781107 /:20 FT:::AGENT SEAL NO.?::IN0423237'
PCI+24+:CUSTOM SEAL NO.:?:2222485'
CST+1+T:120+T2:105++732599:169'
GID+6+1:PK'
FTX+AAA+++ALUMINIUM PNEUMATIC MECHANICAL PART'
MEA+AAE+G+KGM:226'
MEA+AAE+AAW+MTQ:37.351'
SGP+GLDU9388840+1'
PCI+24+AS PER INVOICE::CONTAINER NO.?::GLDU9388840::AGENT SEAL NO.?::IN0344370::CUSTOM SEAL NO.:?:2222486'
PCI+24+CONTAINER NO.?:2::FCIU4781107 /:20 FT:::AGENT SEAL NO.?::IN0423237'
PCI+24+:CUSTOM SEAL NO.:?:2222485'
CST+1+T:120+T2:105++841290:169'
GID+7+5:PK'
FTX+AAA+++DUCTILE IRON CAST ARTICLES'
MEA+AAE+G+KGM:2346.6'
MEA+AAE+AAW+MTQ:37.351'
SGP+GLDU9388840+5'
PCI+24+AS PER INVOICE::CONTAINER NO.?::GLDU9388840::AGENT SEAL NO.?::IN0344370::CUSTOM SEAL NO.:?:2222486'
PCI+24+CONTAINER NO.?:2::FCIU4781107 /:20 FT:::AGENT SEAL NO.?::IN0423237'
PCI+24+:CUSTOM SEAL NO.:?:2222485'
merci d'avance.
j'ai un ficher in_4799 , et je voudrais faire un script en C pour supprimer automatiquement quand il y a "::" qui suit un + quand la ligne commence par PCI.
Voici a quoi ressemble le ficher in_4799 :
PCI+24+AS PER INVOICE::CONTAINER NO.?::GLDU9388840::AGENT SEAL NO.?::IN0344370::CUSTOM SEAL NO.:?:2222486'
PCI+24+::CONTAINER NO.?:2::FCIU4781107 /:20 FT:::AGENT SEAL NO.?::IN0423237'
PCI+24+:CUSTOM SEAL NO.:?:2222485'
CST+1+T:120+T2:105++732599:169'
GID+6+1:PK'
FTX+AAA+++ALUMINIUM PNEUMATIC MECHANICAL PART'
MEA+AAE+G+KGM:226'
MEA+AAE+AAW+MTQ:37.351'
SGP+GLDU9388840+1'
PCI+24+AS PER INVOICE::CONTAINER NO.?::GLDU9388840::AGENT SEAL NO.?::IN0344370::CUSTOM SEAL NO.:?:2222486'
PCI+24+::CONTAINER NO.?:2::FCIU4781107 /:20 FT:::AGENT SEAL NO.?::IN0423237'
PCI+24+:CUSTOM SEAL NO.:?:2222485'
CST+1+T:120+T2:105++841290:169'
GID+7+5:PK'
FTX+AAA+++DUCTILE IRON CAST ARTICLES'
MEA+AAE+G+KGM:2346.6'
MEA+AAE+AAW+MTQ:37.351'
SGP+GLDU9388840+5'
PCI+24+AS PER INVOICE::CONTAINER NO.?::GLDU9388840::AGENT SEAL NO.?::IN0344370::CUSTOM SEAL NO.:?:2222486'
PCI+24+::CONTAINER NO.?:2::FCIU4781107 /:20 FT:::AGENT SEAL NO.?::IN0423237'
PCI+24+:CUSTOM SEAL NO.:?:2222485'
Après le script le fichier devrait ressembler a ça :
PCI+24+AS PER INVOICE::CONTAINER NO.?::GLDU9388840::AGENT SEAL NO.?::IN0344370::CUSTOM SEAL NO.:?:2222486'
PCI+24+CONTAINER NO.?:2::FCIU4781107 /:20 FT:::AGENT SEAL NO.?::IN0423237'
PCI+24+:CUSTOM SEAL NO.:?:2222485'
CST+1+T:120+T2:105++732599:169'
GID+6+1:PK'
FTX+AAA+++ALUMINIUM PNEUMATIC MECHANICAL PART'
MEA+AAE+G+KGM:226'
MEA+AAE+AAW+MTQ:37.351'
SGP+GLDU9388840+1'
PCI+24+AS PER INVOICE::CONTAINER NO.?::GLDU9388840::AGENT SEAL NO.?::IN0344370::CUSTOM SEAL NO.:?:2222486'
PCI+24+CONTAINER NO.?:2::FCIU4781107 /:20 FT:::AGENT SEAL NO.?::IN0423237'
PCI+24+:CUSTOM SEAL NO.:?:2222485'
CST+1+T:120+T2:105++841290:169'
GID+7+5:PK'
FTX+AAA+++DUCTILE IRON CAST ARTICLES'
MEA+AAE+G+KGM:2346.6'
MEA+AAE+AAW+MTQ:37.351'
SGP+GLDU9388840+5'
PCI+24+AS PER INVOICE::CONTAINER NO.?::GLDU9388840::AGENT SEAL NO.?::IN0344370::CUSTOM SEAL NO.:?:2222486'
PCI+24+CONTAINER NO.?:2::FCIU4781107 /:20 FT:::AGENT SEAL NO.?::IN0423237'
PCI+24+:CUSTOM SEAL NO.:?:2222485'
merci d'avance.
A voir également:
- Supprimer ": :" dans un document.txt
- Supprimer rond bleu whatsapp - Guide
- Supprimer une page word - Guide
- Supprimer pub youtube - Accueil - Streaming
- Fichier impossible à supprimer - Guide
- Supprimer compte instagram - Guide
2 réponses
En Python3, cela donnerait :
Si
En C il faudrait une bonne centaine de lignes, sauf si tu utilises une bibliothèque gérant les regexp.
Dal
import re f = open('in_4799') for line in f: m = re.match(r"(^PCI.*?\+)::(.*$)", line) if m: print(m.group(1)+m.group(2)) else: print(line, end='') f.close()
Si
+::peut apparaître plusieurs fois sur une ligne commençant par PCI, il faut modifier le code pour appliquer la regexp sur la ligne lue tant que la regexp est matchée (ce n'est pas le cas dans le jeu de données que tu fournis).
En C il faudrait une bonne centaine de lignes, sauf si tu utilises une bibliothèque gérant les regexp.
Dal
Juste un dernier service, tu sais comment m'aider parce que je comprend pas pourquoi il trouve pas le fichier.
-Jillow
Dans ton message d'origine tu indiquais que le fichier était "in_4799" et pas "in4799" comme tu l'as écrit.
Vérifie aussi s'il n'y a pas d'extension . Tu es visiblement sous Windows, et ce système d'exploitation aime bien "simplifier la vie" des utilisateurs en masquant les extensions "connues" dans le gestionnaire de fichiers. Si ton fichier a une extension .txt et que tu ne pas précises pas dans ton programme, Python ne le trouvera pas.