Nike Administrator


Data inscrierii: 07/Ian/2009 Mesaje: 36
|
Trimis: 15/01/2009 20:27 Titlul subiectului: [Delphi]Citire fisier text (tip) |
|
|
Citirea fisierelor text, in mod normal, se face in felul urmator:
Code:
| Cod: | var F : Text;
S : String;
...
AssignFile(F, 'nume_fisier.txt');
Reset(F);
While Not EoF(F) Do
Begin
ReadLn(F, S);
{procesari asupra liniei tocmai citite}
End;
CloseFile(F); |
...E o solutie functionala, ramasa inca din momentul Pascalului. Recent, totusi, am observat niste diferente destul de mari de viteza daca incarc fisierul intr-un TStringList, iar procesarile le fac direct in memorie (bineinteles, ma refer la fisiere text de marime sesizabila )
Codul, mai jos :
Code:
| Cod: | var ST : TStringList;
i : Integer;
...
ST := TStringList.Create;
ST.LoadFromFile('nume_fisier.txt');
For i := 0 To ST.Count - 1 Do
{procesari asupra liniei curente}
FreeAndNil(ST); | ...Nu uitati sa goliti StringList-ul, fiindca va veti trezi cu niste leak-uri de memorie. Cel mai sigur ar fi utilizarea unui bloc try ... finally, ca in exemplul de mai jos:
Code:
| Cod: | ST : TStringList;
...
begin
try
ST := TStringList.Create;
...
{procesari}
...
finally
FreeAndNil(ST);
end;
end; |
|
|