Pourquoi richEdit.lines.loadfromstream ne marche pas alors que
cs_Gerard
Messages postés121Date d'inscriptionjeudi 10 janvier 2002StatutMembreDernière intervention 7 août 2018
-
21 mai 2009 à 14:14
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 2010
-
21 mai 2009 à 16:03
Pourquoi la séquence suivante ne charge pas le stream dans le RichEdit :
with PriseClient.Connection.Socket do
Fs := TMemoryStream.Create; //Créer le flux
try
try
ReadStream(Fs,TailleFichier,False); //Lire le flux
WriteLn('OK'); //Signaler succès
except
WriteLn('ERR'); //Signaler une erreur
end;
finally
fComment.RichEdit2.Lines.LoadFromStream(Fs);
FreeAndNil(Fs); //Libérer le flux dans tous les cas
alors que celle-ci fonctionne:
with PriseClient.Connection.Socket do
Fs := TMemoryStream.Create; //Créer le flux
try
try
ReadStream(Fs,TailleFichier,False); //Lire le flux
WriteLn('OK'); //Signaler succès
except
WriteLn('ERR'); //Signaler une erreur
end;
finally
fs.SaveToFile('TestStream.rtf');
fComment.RichEdit2.Lines.LoadFromfile('TestStream.rtf');
FreeAndNil(Fs); //Libérer le flux dans tous les cas
Or créer un fichier dans le cadre d'une application multithread n'est pas une très bonne solution, car plusieurs threads peuvent vouloir accéder au même fichier en même temps...
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 21 mai 2009 à 14:36
with PriseClient.Connection.Socket do
Fs := TMemoryStream.Create; //Créer le flux
try
try
ReadStream(Fs,TailleFichier,False); //Lire le flux
WriteLn('OK'); //Signaler succès
except
WriteLn('ERR'); //Signaler une erreur
end;
Fs.position := 0;
fComment.RichEdit2.Lines.LoadFromStream(Fs);
finally
Fs.Free; //Libérer le flux dans tous les cas
end;