[..] Effacement un mot dans un fichier texte

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

[..] Effacement un mot dans un fichier texte

#1

Message par pierrotm777 »

J'ai un dictionnaire du genre fichier texte dico.txt

MAISON
BATEAU
VELO
VOITURE
AVION

Je souhaite effacer un mot de ce fichier .

J'ai donc essayé ceci:

Code : Tout sélectionner

#Include <File.au3>
#include <string.au3>

$Path = @ScriptDir & "\dico.txt"
$File = FileOpen ("dico.txt")
For $i = 1 To _FileCountLines ($Path)
        $line = FileReadLine ($File,$i)
    $rep = StringRegExpReplace($line,"VELO","",1)
    _FileWriteToLine ($Path,$i,$rep,1)
Next
le probleme c'est que le mot VELO est effacé mais aussi remplacé par le mot suivant !

J'ai aussi essayé:

Code : Tout sélectionner

_ReplaceStringInFile(@ScriptDir & "\dico.txt","VELO" ,"")
Là, le mot est bien effacé mais laisse place à une ligne vide.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Effacement un mot dans un fichier texte

#2

Message par jbnh »

Ce que tu peux faire, c'est de passer en revue le dico ligne par ligne, si la ligne ne vaut pas ce que tu veux supprimer : tu écris dans un nouveau fichier (dico2 par ex), si ca correspond, tu ne réécris pas.

A la fin du traitement, tu supprimes dico.txt et tu rename dico2.txt en dico.txt
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Effacement un mot dans un fichier texte

#3

Message par sylvanie »

si le fichier peut être buffurisé en un coups
► Afficher le texte
sinon faire une lecture par block
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Répondre