IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Remplaçer un mot dans un fichier Txt


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Août 2006
    Messages : 106
    Points : 55
    Points
    55
    Par défaut Remplaçer un mot dans un fichier Txt
    Bonjour à tous,

    Je voudrais savoir comment je pourrais remplaçer un mot ou une phrase dans fichier Txt existant par exemple

    Fichier Txt :
    "je voudrais remplçer par exemple le mot Bonjour par un autre"

    Fichier Txt devient :
    "je voudrais remplçer par exemple le mot Bonsoir par un autre"

    J'ai vu dans le forum un problème qui ressemble au mien mais il s'agissait de remplaçer des lignes entières alors on l'a conséillé d'utiliser une StringList. Mais dans mon cas il s'agit de mots pas des lignes.

    Alors qu'est-ce que vous suggérez ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour


    Extrait de l'aide Delphi en français.
    Remplace toutes les occurrences d'une sous-chaîne par une autre chaîne.

    Unité

    StrUtils

    Catégorie

    routines de gestion des chaînes

    Syntaxe Delphi :

    functionAnsiReplaceStr(constAText,AFromText,AToText:string):string;

    Syntaxe C++:

    externPACKAGE AnsiString__ fastcallAnsiReplaceStr(constAnsiStringAText,constAnsiStringAFromText,constAnsiString
    AToText);

    Description

    Appelez AnsiReplaceStr pour analyser la chaîne spécifiée par AText et remplacer toutes les occurrences de la chaîne spécifiée par AFromText par la chaîne spécifiée par AToText.Les occurrences de AFromText sont identifiées par une comparaison tenant compte de la casse.L'identification des sous-chaînes n'est pas récursive :si la substitution de AToText aboutit àune nouvelle correspondance de AFromText,celle-ci n'est pas remplacée.

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Janvier 2003
    Messages : 110
    Points : 109
    Points
    109
    Par défaut
    tu peux aussi utliser la fonction StringReplace.

    Tu lis ton fichier et le mets dans une TStringList. Ensuite pour chaque chaine de ta TStringList tu fais le replace.

    Et ensuite tu réécris ton fichier.

    PS : garde ouvert en ecriture ton fichier pendant tout le temps, comme ça tu es sur que personne ne vienne le modifier.

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 299
    Points
    11 299
    Billets dans le blog
    6
    Par défaut
    Ensuite pour chaque chaine de ta TStringList tu fais le replace
    ou une seule fois, avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dest:=StringReplace(Sub, New, StringList.Text, [rfReplaceAll]); // ordre des params à vérifier
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 207
    Points : 161
    Points
    161
    Par défaut
    Pour StringReplace, la syntaxe exacte est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Destination := StringReplace(Source, Texte_a_remplacer, Texte_de_remplacement, [rfReplaceall]);

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Août 2006
    Messages : 106
    Points : 55
    Points
    55
    Par défaut
    Merci à tous ceux qui m'ont aidé, c'était effectivement la fonction qu'il fallait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    procedure TForm2.Button1Click(Sender: TObject);
    var
      i:Integer;
    begin 
     
       Self.ListBox1.Items.LoadFromFile('.\Ancien.txt');
     
             For i:=1 to Self.ListBox1.Count-1 do
                begin
                   Self.ListBox1.Items.Strings[i]:=StringReplace(Self.ListBox1.Items.Strings[i],'Bonjour','Bonsoir',[rfReplaceAll]);
                end;
     
        Self.ListBox1.Items.SaveToFile('.\Nouveau.txt');
     
    end;
    Merci encore une fois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] possibilité de trouver un mot dans un fichier .txt
    Par emsebai dans le forum MATLAB
    Réponses: 6
    Dernier message: 20/10/2016, 18h02
  2. Réponses: 12
    Dernier message: 28/04/2009, 23h05
  3. [batch] Comment rechercher deux mots dans un fichier .txt ?
    Par koKoTis dans le forum FAQs Windows
    Réponses: 0
    Dernier message: 10/02/2009, 17h54
  4. detecter une ligne a un seul mot dans un fichier txt
    Par malikoo dans le forum Général Python
    Réponses: 9
    Dernier message: 04/07/2007, 19h43
  5. récupérer un mot dans un fichier txt
    Par thedevil dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/05/2007, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo