Delphi – SmeÅ¡tanje podeÅ¡avanja programa u .ini fajl (III deo)
Nakon Å¡to smo se upoznali kako se Äitaju kljuÄevi iz INI fajlova, objasniÄemo i kako se vrÅ¡i upis podataka u INI fajlove. Najidealnije mesto za snimanje informacija o programu je na zatvaranju programa, tj. unutar dogaÄaja OnClose glavne forme. Pre nego Å¡to se aplikacija prekine, zapisaÄemo trenutnu poziciju prozora i informaciju o poslednjem korisniku:
procedure TForm1.FormClose
(Sender: TObject; var Action: TCloseAction);
var
IniFile : TIniFile;
begin
IniFile := TIniFile.Create
(ChangeFileExt(Application.ExeName,’ini’));IniFile.WriteString
(‘Poslednji’, ‘Korisnik’, ‘Taj_i_Taj’);
IniFile.WriteDate
(‘Poslednji’, ‘Datum’, Date);With IniFile, Form1 do
begin
WriteInteger(‘Polozaj’,’Top’, Top);
WriteInteger(‘Polozaj’,’Left’, Left);
WriteInteger(‘Polozaj’,’Width’, Width);
WriteInteger(‘Polozaj’,’Height’, Height);
end;IniFile.Free;
end;
Postoji nekoliko metoda koje sluÅŸe za operaciju sa celim sekcijama unutar INI fajlova. Na primer metoda EraseSection sluÅŸi za brisanje cele jedne sekcije unutar INI fajla. Metode ReadSection i ReadSections popunjavaju objekat TStringList sa nazivima svih sekcija (i nazivima kljuÄeva) u INI fajlu. Da napomenemo i to da sliÄna klasa postoji i u registry unit-u – klasa TRegIniFile – klasa koja omoguÄava laki pristup sistemskoj registracionoj bazi i bez potrebe za poznavanjem strukture samog Registry-ja. Klasa TRegIniFile koristi sliÄan funkcionalni pristup Registry bazi, otprilike kako to radi i TIniFile za pristup INI fajlu.
Klasa TIniFile koristi Windows API interfejs, koji nameÄe limit od 64KB po INI fajlu. Ukoliko vam je potrebno da saÄuvate viÅ¡e od 64KB podataka, trebalo bi da koristite klasu TMemIniFile, koja nema ovakav limit. JoÅ¡ jedan problem koji moÅŸe da iskrsne je ako imate sekcije koje sadrÅŸe vrednosti u koliÄini veÄoj od 8 kilobajta. Metod ReadSection koristi API funkciju GetPrivateProfileString sa baferom od 8 kilobajta. Jedan od naÄina da reÅ¡ite problem jeste da napiÅ¡ete sopstvenu verziju ReadSection metode. Äinjenica da svako moÅŸe da pristupi i modifikuje INI fajlove govori da integritet podataka unutar INI fajlova ne moÅŸe biti garantovan. Ipak, moÅŸda je za utehu i to Å¡to se i baza Registry takoÄe moÅŸe modifikovati, pa zato nema velike prednosti u ovom pogledu.
Pratite Krstaricu i preko mobilne aplikacije za Android i iPhone.