[R] Effacer une ligne dans un fichier texte

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
pop45
Membre émérite
Membre émérite
Messages : 251
Enregistré le : dim. 30 août 2009 16:18
Status : Hors ligne

[R] Effacer une ligne dans un fichier texte

#1

Message par pop45 »

► Afficher le textePrecedent question

Une nouvelle question
Comment on fait pour effacer une ligne dans un txt?
Modifié en dernier par pop45 le sam. 20 févr. 2010 10:12, modifié 1 fois.
Cordialement Pop45
Veuillez agrée nos sentiment les plus distinguer, soyez assurer de mon entièr et amical collaboration, bien a vous pour toujours et a jamais dans l'unique but de servir l'espérance de votre satisfaction.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

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

#2

Message 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
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Voor0ck
Niveau 2
Niveau 2
Messages : 19
Enregistré le : jeu. 05 juin 2008 10:25
Status : Hors ligne

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

#3

Message 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)
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

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

#4

Message par Habibsbib »

Ben fastoche :roll:

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

Tu devrais lire la doc' toi de temps en temps ^^
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#5

Message 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.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Nabilou
Niveau 1
Niveau 1
Messages : 1
Enregistré le : mer. 07 avr. 2010 09:59
Status : Hors ligne

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

#6

Message 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.
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

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

#7

Message 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.
Répondre