Probleme Tstringlist

Résolu
Spellbound74 Messages postés 6 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 31 mars 2006 - 30 mars 2006 à 14:37
Spellbound74 Messages postés 6 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 31 mars 2006 - 31 mars 2006 à 09:45
Bonjour,

j'aimerais modifier une ligne dans un fichier texte :

TStringList1 = class(TStringList)
var
MyFileInfo: TStringList1;

procedure GetFileContent(Filename: string; Result: TStrings);
begin
Assert(Result <> nil, 'Result is nil');
Result.LoadFromFile(Filename);
end;

MyFileInfo := TStringList1.Create;
try
GetFileContent('C:\...\text.bat', MyFileInfo);
Myfileinfo.strings[5]:='nouveau texte de ma ligne';
finally
MyFileInfo.Free;
end;

ben ca ne marche pas on dirait qu'on peut lire dans le Tstringlist tant qu'on veut, mais je n'arrive pas a y écrire. qqun a une solution ?

3 réponses

Spellbound74 Messages postés 6 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 31 mars 2006
31 mars 2006 à 09:45
finalement j'ai trouvé une autre méthode que Strings pour faire un remplacement : insert

pour remplacer la ligne 4 :

MyFileInfo.Delete(4);
Myfileinfo.Insert(4,nouvelleligne);
3
sisi231 Messages postés 207 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 29 mars 2013 5
30 mars 2006 à 18:17
Déjà, si tu veux que ton paramètre result de GetFileContent puisse être modifiable en écriture il faut le déclarer en var comme ceci :

procedure GetFileContent
(Filename: string; var
Result: TStrings);

SISI231
0
cs_neko Messages postés 135 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 12 octobre 2006 1
30 mars 2006 à 19:08
heu non, il ne fait pas de destruction/instanciation dans sa fonction donc pas besoin du Var.

c'est normal que ton fichier ne change pas

MyFileInfo := TStringList1.Create; //Création
try
GetFileContent('C:\...\text.bat', MyFileInfo); //Chargement du fichier en mémoire
Myfileinfo.strings[5]:='nouveau texte de ma ligne'; //Modification de la mémoire
//Manque sauvegarde de la mémoire dans le fichier, un truc genre MyFileInfo.savetofile('C:\...\text.bat');
finally
MyFileInfo.Free;
end;

bouh
0
Rejoignez-nous