Page 1 sur 1

[R] Effacer une ligne dans un fichier texte

Posté : ven. 05 févr. 2010 19:40
par pop45
► Afficher le textePrecedent question

Une nouvelle question
Comment on fait pour effacer une ligne dans un txt?

Re: [..]effacer une ligne dasn un txt

Posté : sam. 06 févr. 2010 00:55
par jbnh
Tu la remplaces par " "

ou alors

Code : Tout sélectionner

#include <Array.au3>
#include <File.au3>

Dim $sFile = "c:\AI\blah.txt"
Dim $aLines
_FileReadToArray($sFile, $aLines)
_ArrayDelete($aLines,[b][color=#FF0000]NUMERO DE LA LIGNE[/color][/b])
FileDelete($sFile)
For $i=1 to $aLines[0]
    If $aLines[$i]<>"" Then FileWriteLine($sFile,$aLines[$i])
Next

Re: [..] Effacer une ligne dans un fichier texte

Posté : ven. 19 févr. 2010 14:04
par Voor0ck
Bonjour,

Je cherchais à supprimer une ou plusieurs ligne(s) dans un fichier texte, je pensais ce script pour moi, mais :

- Je ne sais pas à l'avance le numéro de la ligne a remplacer
- Je ne pige pas vraiment le bout de code :(

Mon exemple :

Un fichier texte est alimenté, ensuite je recherche certains mots dans le fichier et j'efface la ligne si le mot correspond à un mot clé.

Fichier d'entré :
Toto
Tata
Tutu
Toto
Toto
Pwet
....

Je cherche le mot clé "TOTO" et je supprime les lignes ou ce mot est présent.

Fichier de sortie :
Tata
Tutu
Pwet

Je sais rechercher un mot clé dans un fichier texte, mais pour la suppression de la ligne, je coince, quelqu'un pour m'aider ?

Mon bout de code :

$f = FileOpen ("c:\test.txt" , 0 )

Dim $aRecords
If Not _FileReadToArray("c:\test.txt",$aRecords) Then
MsgBox(4096,"Error", " Error reading log to Array error:" & @error)
Exit
EndIf
For $x = 1 to $aRecords[0]
Msgbox(0,'Record:' & $x, $aRecords[$x])
$mot = stringmid($aRecords[$x],1,4)
Msgbox(0,'Mot' & $x, $mot)
If stringcompare($mot,"PWET") = 0 Then
MsgBox (0,"PWET", "PWET trouvé à la ligne : " & $x)
SUPPRESSION DE LA LIGNE dans le fichier texte
EndIf
Next
FileClose($f)

Re: [..] Effacer une ligne dans un fichier texte

Posté : ven. 19 févr. 2010 16:40
par Habibsbib
Ben fastoche :roll:

_FileWriteToLine($fichier, $x, "", 1)

Tu devrais lire la doc' toi de temps en temps ^^

Re: [..] Effacer une ligne dans un fichier texte

Posté : ven. 19 févr. 2010 19:01
par Tlem
@Voor0ck
Merci de prendre le temps de lire les règles de présentation d'un message.
Vous avez oublié la balise de code.

Re: [R] Effacer une ligne dans un fichier texte

Posté : jeu. 15 avr. 2010 11:10
par Nabilou
Bonjour,

C'est mont tout premier message :)

Je souhaiterai savoir comment effacer un mot précis dans un fichier texte et le remplacer par un autre?

Merci pour vos réponses je suis nouveau sur le forum mais aussi sur Autoit mais surtout en programmation.

Re: [R] Effacer une ligne dans un fichier texte

Posté : jeu. 15 avr. 2010 14:42
par Habibsbib
En général, un mot est délimité par deux espaces.
Donc, en prenant cette phrase et en voulant supprimer le mot "mur" :
Hier, je me suis pris un mur en pleine face.
Alors le code approprié est :

Code : Tout sélectionner

$phrase = "Hier, je me suis pris un mur en pleine face."
$phrase_sans_mur = StringReplace ($phrase, " mur", "")
MsgBox (0, "", $phrase_sans_mur)
 
Voila, c'est aussi simple que ça. Si tu veux faire ça sur un texte de plusieurs lignes, le principe est le même, remplaces juste la première variable "$phrase" par une variable contenant le FileRead() de ton fichier.
C'est tout.