Fichier texte

Résolu
gryz2791 Messages postés 4 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 5 octobre 2007 - 27 sept. 2007 à 19:12
gryz2791 Messages postés 4 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 5 octobre 2007 - 5 oct. 2007 à 20:10
Bonjour à tous.

Je voudrais savoir comment faire en delphi pour remplacer dans un fichier une chaine par une autre.

Merci d'avance.

8 réponses

cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 3
1 oct. 2007 à 21:54
 c'est très simple :
1. Tu prends ta ligne Buffer (de type string)
2. si tu veux conaître l'emplacement d'un premier caractère comme une virgule, tu utilise la fonction  Pos(CarRecherché,Buffer)
3. Si tu veux rechercher la position du premier caractère d'un mot ou d'une expression exacte, tu ulilise la fonction
    AnsiPos(TextRecherché,Buffer)
4. Si tu veux remplacer   un bout de texte par un autre , tu utilises : AnsiReplaceText(Buffer, TextRecherché, TextDeRemplacement);
Il te faut utiliser les unités de Delphi : SysUtils et StrUtil; ( à rajouter dans Uses)
Enfin, tu trouvera d'autres fonction avec l'aide F1 que tu tappe sur une fonction que tu connais.
Par exemple, Tu tappes POS, tu fais F1 et tu sera guidé vers d'autres fonctions  dans voir aussi ou sur les fonctions de même type.
etc...
Bon code
Jean_Jean
3
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 3
2 oct. 2007 à 08:14
 Donc, tu as :
   {1ère fonction : remplace tous les mêmes mots}
     Buffer := AnsiReplaceText(Buffer, TextRecherche, TextDeRemplacement);
  {2ème fonction : avec options de remplacement}
     Buffer := StringReplace(Buffer, TextRecherche,TextDeRemplacement,[rfReplaceAll,rfIgnoreCase]);
     Va sur l'aide et tu trouveras plein de possibilités
Il y a d'autres techniques qui travaillent caractère par caractère mais bon il vaut mieux commencer par le plus simple.
Jean_Jean
3
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 3
27 sept. 2007 à 21:20
Bj gryz!
Cela dépend de la structure de ton fichier. TextFile ou Sans type avec un Record défini?
Pour un fichier Typé, voici :
Type TMonRecord = Record
            Champ1 : string;
            Champ2 : integer;
Var F    : File of  MonRecord; 
       Rec : TRecord;
...
Try
   AssignFile(F,TonFichier);
   Reset(F);
   Seek(F,Position Dans TonFichier);
   Read(F,Rec);   // récupération des valeurs du champs à modifier
   Rec.Champ1 := 'Ta nouvelle chaine';  // écriture de ta nouvelle valeur
   Write(F,Rec);
  Finally
   closefile(F);
  End;

Bon code
Jean_Jean
0
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 3
27 sept. 2007 à 23:04
Pardon!
  Var Rec : TMonRecord;
Jean_Jean
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gryz2791 Messages postés 4 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 5 octobre 2007
27 sept. 2007 à 23:05
Merci Jean_jean
0
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 3
28 sept. 2007 à 10:11
Salut gryz!
N'oublie pas, si le code te convient de valider les réponses satisfaisantes par le bouton à droite: accepter.
Sinon, n'hésite pas, demande!
Les fichiers, j'aime bien, mais c'est parfois subtil! Et ça me fait réviser.
Et, oui, on aime bien ça les difficultés ici, on est un peu maso!
Bien à toi.
Jean_Jean
0
gryz2791 Messages postés 4 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 5 octobre 2007
1 oct. 2007 à 19:14
Salut Jean_Jean

En fait il s'agit d'un fichier de type TextFile.
Je débute en delphi.

J'arrive a lire le ficier ligne par ligne sans Problème avec 'While not (EOF)'. je stocke ca dans une variable String 'Buffer'
Mais apres je bloque :

Si il y'a  une partie de la ligne,ou un mot qui m'interesse dans 'Buffer' je voudrai la remplacer par une autre chaine.

Peut etre que le choix du Type TexFile n'est pas le meilleur.

merci encore.
0
gryz2791 Messages postés 4 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 5 octobre 2007
5 oct. 2007 à 20:10
Salut Jean

Merci pour tout.
c'est vrai qu'en fait c'est pas si compliqué...

Enfin beaucoup plus facile maintenant que tu m' as tout maché.

A+
0
Rejoignez-nous