[ R ] Supprimer les caractères trouvant à droite de "<"

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

[ R ] Supprimer les caractères trouvant à droite de "<"

#1

Message par Boulanza »

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
Modifié en dernier par Boulanza le dim. 17 déc. 2017 16:48, modifié 1 fois.
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [ ] Supprimer les caractères trouvant à droite de "<"

#2

Message par Boulanza »

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
Avatar du membre
mikell
Spammer !
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 "<"

#3

Message par mikell »

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)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [ ] Supprimer les caractères trouvant à droite de "<"

#4

Message par Boulanza »

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.
Avatar du membre
orax
Modérateur
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 "<"

#5

Message par orax »

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)
Avatar du membre
jchd
AutoIt MVPs (MVP)
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 "<"

#6

Message par jchd »

Il faut supprime sur chaque ligne tout ce qui se trouve à droite du premier "<" trouvé sauf ce sui se trouve entre "< >"
C'est de la logique shadock ?
Votre code ne supprime pas ce qui se trouve à droite du premier "<", il le copie sur la ligne suivante.
Il faut vraiment nous indiquer un jour votre fournisseur d'extasy, c'est de la bombe !
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
jchd
AutoIt MVPs (MVP)
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 "<"

#7

Message par jchd »

Ceci dit,

Code : Tout sélectionner

If FileExists(@DesktopDir & "\sortie.txt") Then FileDelete(@DesktopDir & "\sortie.txt")
c'est juste :

Code : Tout sélectionner

FileDelete(@DesktopDir & "\sortie.txt")
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
mikell
Spammer !
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 "<"

#8

Message par mikell »

Merci jc
C'est dur parfois Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [ ] Supprimer les caractères trouvant à droite de "<"

#9

Message par Boulanza »

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.
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [ ] Supprimer les caractères trouvant à droite de "<"

#10

Message par Boulanza »

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.
Avatar du membre
orax
Modérateur
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 "<"

#11

Message par orax »

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)
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [ ] Supprimer les caractères trouvant à droite de "<"

#12

Message par Boulanza »

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.
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [ ] Supprimer les caractères trouvant à droite de "<"

#13

Message par Boulanza »

Bonsoir,
$resultat = StringRegExpReplace($file, "[^<]+<([^>]+)>.+(\R?)", "\1\"&","&"\2")
ça marche mais pas pour la dernière ligne.
Pouvez-vous corriger l’erreur. Merci.
Cordialement.
Avatar du membre
orax
Modérateur
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 "<"

#14

Message par orax »

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.

Code : Tout sélectionner

$resultat = StringRegExpReplace($file, "[^<]+<([^>]+)>(\N*)(\R|$)", "\1\2\3")
ou simplement

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)
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [ ] Supprimer les caractères trouvant à droite de "<"

#15

Message par Boulanza »

$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
Répondre