Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Delphi - načítanie z INI súboru

Mám túto metódu:

procedure TfrmCustomHead.FormCreate(Sender: TObject);
var
  Ini: TIniFile;
  i: Byte;
begin
  Ini := TIniFile.Create(MainForm.PrgPath + 'Spanwin.ini');
  for i := 0 to 11 do
    Ini.ReadString('Head', 'HeadString' + IntToStr(i), HeadString[i]);
  Ini.Free;
end;

A tento INI súbor:

[Head]
HeadString0=0
HeadString1=1
HeadString2=2
HeadString3=3
HeadString4=4
HeadString5=5
HeadString6=6
HeadString7=7
HeadString8=8
HeadString9=9
HeadString10=10
HeadString11=11

Načítané reťazce sú prázdne. Vie mi niekto vysvetliť, kde robím chybu? Táto metóda funguje dobre:

procedure TfrmCustomHead.bbOKClick(Sender: TObject);
var
  Ini: TIniFile;
  i: Byte;
begin
  Ini := TIniFile.Create(MainForm.PrgPath + 'Spanwin.ini');
  for i := 0 to 11 do
    begin
      HeadString[i] := (Panel.Controls[i] as TEdit).Text;
      Ini.WriteString('Head', 'HeadString' + IntToStr(i), HeadString[i]);
    end;
  Ini.Free;
end;
Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
A ja jen doplnim, pokud bude ten soubor vetsi, pouzij radeji TMemIniFile. Je to Delphi implmentace s…
Jan Fiala 07.06.2006 16:54
Jan Fiala
Áno, ďakujem. Raz dávnejšie som sa aj tak zamýšlal nad tým, že čo potom, ak sa pracuje s dlhým súbor…
msx. 07.06.2006 18:54
msx.
Podla knihy co mam o Delphi rozdiel medzi TMemIniFile a TIniFile je ze TMemIniFile nepracuje s fyzic…
Andrej 07.06.2006 23:18
Andrej
Důležité ovšem je, že TIniFile používá Woknouzí API funkce pro práci s INI soubory a ty nedovedou pr… poslední
Rce 07.06.2006 23:28
Rce

Áno, ďakujem. Raz dávnejšie som sa aj tak zamýšlal nad tým, že čo potom, ak sa pracuje s dlhým súborom (síce to nie je môj prípad). Že to iba zaťaží Delphi. NO a rozmýšlal som ako by to bolo lepšie riešiť. Ale nedáva si TMemIniFile šetko do pamäti? Teda tak to chápem z názvu (presnejšie povedané, doteraz som si to tak myslel).

Podla knihy co mam o Delphi rozdiel medzi TMemIniFile a TIniFile je ze TMemIniFile nepracuje s fyzickym suborom na disku ale vsetky udaje pre zvysenie rychlosti uklada do vyrovnavacej pamate. Na disk ich zapise az ked sa zavola metoda UpdateFile.

Důležité ovšem je, že TIniFile používá Woknouzí API funkce pro práci s INI soubory a ty nedovedou pracovat s delším jak 64KB. Kdežto v TMemIniFile (a potažmo, leč zdroják jsem nezkoumal, v TRegistryIniFile) si to ovládá Delphi na svoje triko, právě kvůli tomuto omezení.:-)

Zpět do poradny Odpovědět na původní otázku Nahoru