Changer caractere dans un txt

promenneur77 Messages postés 16 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 4 mai 2008 - 2 mai 2008 à 10:59
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 - 2 mai 2008 à 23:02
bonjour,
je cherche une fonction permetant de remplacer les 2 dernier caractere de la 2eme ligne dans fichier.
ex:

fichier:

@ echo
10.253.214.16
pause

je voudrais mettre 1 a la place de 16 pour avoir :

@ echo
10.253.214.1
pause

merci d'avance

4 réponses

JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
2 mai 2008 à 16:59
Je viens dela tester, et ça marche, si quelqu'un a mieux, qu'il propose, si quelqu'un veut améliorer, qu'il le fasse :

procedure Remplacer(const fFile: TFileName; const fLastIp: Integer);
var
 fTempTS: TStringList;
 fSTemp: String;
begin
 fTempTS := TStringList.Create; // on crée le TStringList
 if FileExists(fFile) then // on verif que le fichier existe
  begin
   fTempTS.LoadFromFile(fFile); // on charge le fichier dans le TS
   if
fTempTS.Count
>0 then // on vérifie que le fichier contient plus d'une ligne
    begin
    
fSTemp :=
Copy(fTempTs.Strings[1],0,PosEx('.',fTempTS.Strings[1],Length(fTempTs.Strings[1])-3))
+ IntToStr(fLastIp); // on copie la string du début jusqu'au prochain
'.' trouvé en partant du 3eme caractere avant la fin de cette string.
     fTempTS.Strings[1] := fSTemp; // on remplace
     fTempTS.SaveToFile(fFile); // on sauvegarde
    end;
  end
 else // si le fichier n'existe pas
  begin
   Showmessage('Fichier introuvable'); // petit message
  end;
 fTempTS.Free; // on libere le TS
end;

Utilisation : Replacer('c:\fichier_ip.txt',1');
fichier_ip.txt =
"
@echo
10.253.214.16
pause
"

Remplacera le 10.253.214.16 par un 10.253.214.1
0
promenneur77 Messages postés 16 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 4 mai 2008
2 mai 2008 à 20:18
petit probleme je sur en delphi 6 et PosEx ne fonctionne pas a premiere vu
0
f0xi Messages postés 4204 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 34
2 mai 2008 à 21:05
PosEx est dispo sur tout delphi, il faut juste utiliser l'unité StrUtils.

<hr size="2" width="100%" />
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
2 mai 2008 à 23:02
Ok, j'avais omis de dire qu'il fallait ajouter "StrUtils" dans les uses.
0
Rejoignez-nous