[ zofr @ 27.09.2009. 20:09 ] @
Mozda previse trazin od TStringList, ali sledeci kod ne radi dobro:
Code:

procedure ZapamtiSve;
var
  i : integer;
  CData : ^tCvorData;
  Ime : string[255];
  Tekstovi : TStringList;
begin
  if MainForm.TreeView1.Items[0].Text = 'Project' then exit;

  Tekstovi := TStringList.Create;
  
  Ime := MainForm.TreeView1.Items[0].Text;
  for i := 0 to MainForm.TreeView1.Items.Count-1 do
  begin
    CData := MainForm.TreeView1.Items[i].Data;
    Tekstovi.Append(CData^.tekst);
  end;
  Tekstovi.SaveToFile(Ime+'.txt'); //ovde je Tekstovi[0] i Tekstovi[1] OK

  Tekstovi.LoadFromFile(Ime+'.txt'); //posle ovog Tekstovi[0] je samo prvi red, a Tekstovi[1] prazan string

end;
[ Rapaic Rajko @ 28.09.2009. 10:04 ] @
A da li si proverio koliko Tekstovi imaju stringova/linija posle ucitavanja iz fajla? Drugim recima, da li si siguran da nema i trece linije? ;)

Evo o cemu se radi. Kad se ucitava sadrzaj iz fajla, to se radi koriscenjem stream-a i (protected) metodom SetTextStr(). Ovo je isto kao da u programu pozovemo npr.

Code:
Tekstovi.Text := S; // S je string sadrzaj iz fajla 


Poenta je da, ako u nekoj liniji imate karakter delimiter (#13 ili #10, ili oba zajedno), metoda automatski cepa tu liniju na dve. Sto dalje znaci, da vise uzastopnih delimitera znaci vise uzastopnih praznih linija. Treba proveriti...

Rajko