[ BobMarley @ 14.03.2004. 21:30 ] @
probao sam ovako

Code:

var
   fileData : TStringList;
   saveLine : String;
   lines, i : Integer;
 begin
   fileData := TStringList.Create;        
   fileData.LoadFromFile('c:\blabla.txt');

   
   lines := fileData.Count;

   for i := lines-1 downto (lines div 2) do
   begin
     saveLine := fileData[lines-i-1];
     fileData[lines-i-1] := fileData[i];
     fileData[i] := saveLine;
   end;

   for i := 0 to lines-1 do
     ShowMessage(fileData[i]);
end;



samo to mi preokrece cjeli fajl naopako pa tek onda pročita prvu liniju, što mi ne odgovara jer se u pitanju zna naći ogroman fajl pa mi je ovo trošenje vremena+resursa.

Kako da otvoreni Text fajl seekam na zadnju liniju i pročitam ju ?
[ reiser @ 14.03.2004. 21:35 ] @
Za manje fajlove, cita red po red dok ne dodje do zadjeg.

Code:

function GetLastFileLine(FPath : String) : String;
var
  SFile : TextFile;
begin
  AssignFile(SFile, FPath);
  Reset(SFile);
    While Not Eof(SFile) Do
      ReadLn(SFile, result);
  CloseFile(SFile);
end;
[ BobMarley @ 14.03.2004. 21:49 ] @
e nasao sam rješenje, bilo mi pred očima :)
zapravo glupost živa, ali eto možda se još netko izgubi kao ja .. evo kako :

Code:

var
   fileData : TStringList;
   lines : Integer;
 
begin
   fileData := TStringList.Create;        
   fileData.LoadFromFile('c:\blabla.txt');

   
   lines := fileData.Count;
   
     ShowMessage(fileData[lines-1]);
end;




eto :)
[ Rapaic Rajko @ 17.03.2004. 14:13 ] @
Lose...
Ukratko, otvoris tvoj text fajl kao BINARY fajl. Zatim ga pretrazujes unazad (Seek), pocev od kraja (preskocis EOF karakter i #$D#$A za zadnju liniju). Trazis karaktere za kraj pretposlednje linije (#$D#$A). Cim ih nadjes, zavrsio si; od te pozicije pa do kraja fajla upravo imas POSLEDNJU liniju.

Rajko
[ vladab @ 04.04.2004. 13:24 ] @
LJudi, kako da upisem nešto u npr 5. liniju (text) fajla, a da ne izmenim sadržaj ostalih linija (naravno 5. linija teba da sadrži samo poslednji upis)? Treba mi za .ini fajl u kome cu da cuvam neka podesavanja.