Aide et conseils concernant AutoIt et ses outils.
aulus
Niveau 7
Messages : 424 Enregistré le : lun. 25 mars 2013 19:38
Status :
Hors ligne
#1
Message
par aulus » mer. 30 avr. 2014 09:47
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.
mikell
Spammer !
Messages : 6292 Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status :
Hors ligne
#2
Message
par mikell » mer. 30 avr. 2014 13:40
?
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 )
jguinch
Modérateur
Messages : 2515 Enregistré le : lun. 14 févr. 2011 22:12
Status :
Hors ligne
#3
Message
par jguinch » mer. 30 avr. 2014 14:02
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 !
mikell
Spammer !
Messages : 6292 Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status :
Hors ligne
#4
Message
par mikell » mer. 30 avr. 2014 14:08
Evidemment
" 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
Messages : 424 Enregistré le : lun. 25 mars 2013 19:38
Status :
Hors ligne
#5
Message
par aulus » mer. 30 avr. 2014 14:58
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...
jchd
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
#6
Message
par jchd » mer. 30 avr. 2014 15:49
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
Messages : 424 Enregistré le : lun. 25 mars 2013 19:38
Status :
Hors ligne
#7
Message
par aulus » mer. 30 avr. 2014 16:26
Merci
bien embêtant ça !
jchd
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
#8
Message
par jchd » mer. 30 avr. 2014 16:31
Repassant par ici tel le furet :
► Afficher le texte
$hFileRead = fileread("1.txt")
;~ $hFileRead = "abc" & @CRLF & " def ghi" & @CR & " klm" & @LF & "nop"
$txt = StringRegExpReplace($hFileRead, '(?m)(^ \N*)(\R)', "$1 # ")
;~ ConsoleWrite($txt & @LF)
FileWrite("2.txt", $txt)
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
aulus
Niveau 7
Messages : 424 Enregistré le : lun. 25 mars 2013 19:38
Status :
Hors ligne
#9
Message
par aulus » mer. 30 avr. 2014 17:07
alors là... chapeau ! Mon fichier a été parfaitement formaté selon mes souhaits !
Grand merci à tous !