[R] Remplacer retour chariot par caract. dans un fich. txt

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

[R] Remplacer retour chariot par caract. dans un fich. txt

#1

Message par aulus »

Bonjour,

je cherche à formater un fichier texte par un programme autoit de manière à remplacer les retours chariot présents dans le contenu du fichier par le caractère # .
J'ai tenté :

Code : Tout sélectionner

While 1
        $Line = FileReadLine($hFileRead)
        If @error = -1 Then ExitLoop
        $Line = StringReplace($Line, CHR(13), " # ") ; j'ai aussi essayé $Line = StringReplace($Line, @CRLF, " # ")
        FileWrite($hFileWrite, $Line)
WEnd
... sans succès !

Je vous remercie de vos conseils.
Modifié en dernier par aulus le mer. 30 avr. 2014 17:08, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] remplacer retour chariot par caract. dans un fich.

#2

Message par mikell »

?

Code : Tout sélectionner

$hFileRead = fileread("1.txt")
$txt = StringReplace($hFileRead, @CRLF, " # ")
FileWrite("2.txt", $txt)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] remplacer retour chariot par caract. dans un fich.

#3

Message par jguinch »

Attention, les caractères de sauts de ligne peuvent être différents d'un fichier à l'autre, en fonction de la provenance du fichier.
Dans ce topic, Mikell propose une expression qui permettra de gérer les différents cas de figure.

Code : Tout sélectionner

$hFileRead = fileread("1.txt")
$txt = StringRegExpReplace($hFileRead, '\R', " # ")
FileWrite("2.txt", $txt)
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] remplacer retour chariot par caract. dans un fich.

#4

Message par mikell »

Evidemment 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 )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] remplacer retour chariot par caract. dans un fich.

#5

Message par aulus »

Merci à tous deux

Je ne souhaite pas utiliser fileread car jeveux conserver certains retours chariot selon une condition :

Code : Tout sélectionner

While 1
        $Line = FileReadLine($hFileRead)
        If @error = -1 Then ExitLoop
        $debut = StringLeft($Line,1)
        if $debut = " " Then
              $Line = StringReplace($Line, CHR(13), " # ") ; j'ai aussi essayé $Line = StringReplace($Line, @CRLF, " # ")
              FileWrite($hFileWrite, $Line)
       else
              FileWrite($hFileWrite, $Line)
      endif
WEnd
 
Et là, le remplacement ne se fait pas...
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] remplacer retour chariot par caract. dans un fich.

#6

Message par jchd »

En utilisant FileReadLine, tu lis le contenu d'une ligne (qui est bien sûr délimitée par @CR ou @LF ou @CRLF). Ton remplacement ne s'effectue donc pas car il n'y a pas de séquence de terminaison dans le contenu de la ligne.

La solution est plutôt dans FileRead suivi de StringRegExp[Replace] qui va bien. Je dois méloigner du clavier : taxi du mercredi... Je passe donc la parole à Mikell et je file.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] remplacer retour chariot par caract. dans un fich.

#7

Message par aulus »

Merci

bien embêtant ça !
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] remplacer retour chariot par caract. dans un fich.

#8

Message par jchd »

Repassant par ici tel le furet :
► Afficher le texte
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] remplacer retour chariot par caract. dans un fich.

#9

Message par aulus »

alors là... chapeau ! Mon fichier a été parfaitement formaté selon mes souhaits !

Grand merci à tous !
Répondre