[ R ] Supprimer les caractères trouvant à droite de "<"
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[ R ] Supprimer les caractères trouvant à droite de "<"
Bonjour,
Votre aide svp,
Supprimer tous les caractères qui se trouvent à droite du symbole "<" de chaque ligne du fichier test30.txt
Exemple: nom prénom<nom prenom@gmail.com>,
Merci d’agence.
Cordialement
Votre aide svp,
Supprimer tous les caractères qui se trouvent à droite du symbole "<" de chaque ligne du fichier test30.txt
Exemple: nom prénom<nom prenom@gmail.com>,
Merci d’agence.
Cordialement
Modifié en dernier par Boulanza le dim. 17 déc. 2017 16:48, modifié 1 fois.
Re: [ ] Supprimer les caractères trouvant à droite de "<"
j'ai testé le code ci-dessous mais ça ne donne rien.
#include <string.au3>
#include <file.au3>
;------------------------------------------------
Dim $resultat
$fichier = @DesktopDir & "\test30.txt"
$file = FileOpen($fichier, 0)
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
If StringRegExp($line, "<*>") Then $resultat &= $line & @CRLF
Wend
FileClose($fichier)
If FileExists(@DesktopDir & "\sortie.txt") Then FileDelete(@DesktopDir & "\sortie.txt")
Filewrite(@DesktopDir & "\sortie.txt", $resultat)
Exit
#include <file.au3>
;------------------------------------------------
Dim $resultat
$fichier = @DesktopDir & "\test30.txt"
$file = FileOpen($fichier, 0)
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
If StringRegExp($line, "<*>") Then $resultat &= $line & @CRLF
Wend
FileClose($fichier)
If FileExists(@DesktopDir & "\sortie.txt") Then FileDelete(@DesktopDir & "\sortie.txt")
Filewrite(@DesktopDir & "\sortie.txt", $resultat)
Exit
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [ ] Supprimer les caractères trouvant à droite de "<"
Ce code supprime sur chaque ligne tout ce qui se trouve à droite du premier "<" trouvé ( "<" inclus)
$fichier = @DesktopDir & "\test30.txt"
$file = FileRead($fichier)
$resultat = StringRegExpReplace($file, '<.*', "")
If FileExists(@DesktopDir & "\sortie.txt") Then FileDelete(@DesktopDir & "\sortie.txt")
Filewrite(@DesktopDir & "\sortie.txt", $resultat)
$file = FileRead($fichier)
$resultat = StringRegExpReplace($file, '<.*', "")
If FileExists(@DesktopDir & "\sortie.txt") Then FileDelete(@DesktopDir & "\sortie.txt")
Filewrite(@DesktopDir & "\sortie.txt", $resultat)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [ ] Supprimer les caractères trouvant à droite de "<"
Merci pour votre réponse.
Il faut supprime sur chaque ligne tout ce qui se trouve à droite du premier "<" trouvé sauf ce sui se trouve entre "< >"
Votre code ne supprime pas ce qui se trouve à droite du premier "<", il le copie sur la ligne suivante.
Il faut supprime sur chaque ligne tout ce qui se trouve à droite du premier "<" trouvé sauf ce sui se trouve entre "< >"
Votre code ne supprime pas ce qui se trouve à droite du premier "<", il le copie sur la ligne suivante.
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [ ] Supprimer les caractères trouvant à droite de "<"
Et comme ceci ?
Code : Tout sélectionner
$fichier = @DesktopDir & "\test30.txt"
$file = FileRead($fichier)
$resultat = StringRegExpReplace($file, "[^<]+<([^>]+)>", "\1")
; ou alors...
; $resultat = StringRegExpReplace($file, "^[^<]+", "\1")
If FileExists(@DesktopDir & "\sortie.txt") Then FileDelete(@DesktopDir & "\sortie.txt")
Filewrite(@DesktopDir & "\sortie.txt", $resultat)
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
- jchd
- AutoIt MVPs (MVP)
- Messages : 2272
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [ ] Supprimer les caractères trouvant à droite de "<"
C'est de la logique shadock ?Il faut supprime sur chaque ligne tout ce qui se trouve à droite du premier "<" trouvé sauf ce sui se trouve entre "< >"
Il faut vraiment nous indiquer un jour votre fournisseur d'extasy, c'est de la bombe !Votre code ne supprime pas ce qui se trouve à droite du premier "<", il le copie sur la ligne suivante.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- jchd
- AutoIt MVPs (MVP)
- Messages : 2272
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [ ] Supprimer les caractères trouvant à droite de "<"
Ceci dit,
c'est juste :
Code : Tout sélectionner
If FileExists(@DesktopDir & "\sortie.txt") Then FileDelete(@DesktopDir & "\sortie.txt")
Code : Tout sélectionner
FileDelete(@DesktopDir & "\sortie.txt")
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [ ] Supprimer les caractères trouvant à droite de "<"
Merci jc
C'est dur parfois
C'est dur parfois
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [ ] Supprimer les caractères trouvant à droite de "<"
Merci pour votre remarque jchd.
Il faut supprime sur chaque ligne tout ce qui se trouve à gauche du premier "<" trouvé sauf ce qui se trouve entre "< >"
Cordialement.
Il faut supprime sur chaque ligne tout ce qui se trouve à gauche du premier "<" trouvé sauf ce qui se trouve entre "< >"
Cordialement.
Re: [ ] Supprimer les caractères trouvant à droite de "<"
Bonsoir orax,
$resultat = StringRegExpReplace($file, "[^<]+<([^>]+)>", "\1") supprime tous ce qui se trouve à gauche de "<" mais toutes les adresses mail (1000) deviennent regroupées sur une seule ligne.
Mohamed 1 <m.12011@gmail.com>,
KHALOUI 2 <m.2@fs-umi.ac.ma>,
Mostafa 3 <m.3@gmail.com>,
Résultat:
m.12011@gmail.comm.2@fs-umi.ac.mam.3@gmail.comm.
Cordialement.
$resultat = StringRegExpReplace($file, "[^<]+<([^>]+)>", "\1") supprime tous ce qui se trouve à gauche de "<" mais toutes les adresses mail (1000) deviennent regroupées sur une seule ligne.
Mohamed 1 <m.12011@gmail.com>,
KHALOUI 2 <m.2@fs-umi.ac.ma>,
Mostafa 3 <m.3@gmail.com>,
Résultat:
m.12011@gmail.comm.2@fs-umi.ac.mam.3@gmail.comm.
Cordialement.
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [ ] Supprimer les caractères trouvant à droite de "<"
En effet. Avec ce code, ça devrait mieux marcher.
Code : Tout sélectionner
$resultat = StringRegExpReplace($file, "[^<]+<([^>]+)>.+(\R?)", "\1\2")
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: [ ] Supprimer les caractères trouvant à droite de "<"
Résultat:
m.12011@gmail.com
m.2@fs-umi.ac.ma
m.3@gmail.com
Il manque juste une virgule à la fin de chaque ligne:
m.12011@gmail.com,
m.2@fs-umi.ac.ma,
m.3@gmail.com,
Pouvez-vous svp l'ajouter, merci.
Cordialement.
m.12011@gmail.com
m.2@fs-umi.ac.ma
m.3@gmail.com
Il manque juste une virgule à la fin de chaque ligne:
m.12011@gmail.com,
m.2@fs-umi.ac.ma,
m.3@gmail.com,
Pouvez-vous svp l'ajouter, merci.
Cordialement.
Re: [ ] Supprimer les caractères trouvant à droite de "<"
Bonsoir,
$resultat = StringRegExpReplace($file, "[^<]+<([^>]+)>.+(\R?)", "\1\"&","&"\2")
ça marche mais pas pour la dernière ligne.
Pouvez-vous corriger l’erreur. Merci.
Cordialement.
$resultat = StringRegExpReplace($file, "[^<]+<([^>]+)>.+(\R?)", "\1\"&","&"\2")
ça marche mais pas pour la dernière ligne.
Pouvez-vous corriger l’erreur. Merci.
Cordialement.
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [ ] Supprimer les caractères trouvant à droite de "<"
Je suppose qu'il n'y a pas de virgule à la dernière ligne, c'est pour cette raison que mon code précédent ne marchait pas correctement.
Si je n'ai pas fait d'erreur, les deux codes ci-dessous devraient marcher.
ou simplement
Si je n'ai pas fait d'erreur, les deux codes ci-dessous devraient marcher.
Code : Tout sélectionner
$resultat = StringRegExpReplace($file, "[^<]+<([^>]+)>(\N*)(\R|$)", "\1\2\3")
Code : Tout sélectionner
$resultat = StringRegExpReplace($file, ".+<(.+?)>(,)?", "\1\2")
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: [ ] Supprimer les caractères trouvant à droite de "<"
$resultat = StringRegExpReplace($file, ".+<(.+?)>(,)?", "\1\2") il marche mieux, mais vous avez raison, s'il n'y a pas de virgule le code ne marche pas, même avec les deux dernier codes. Je pense qu'il faut forcer le code d'ajouter une virgule si elle n’existe pas, c'est même parfait pour corriger cette erreur. Votre aide est toujours sollicitée. Merci