Using INI Files/fi
│
العربية (ar) │
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
polski (pl) │
русский (ru) │
中文(中国大陆) (zh_CN) │
Ini-tiedostot
Johdanto
INI-tiedostot ovat ns tekstitiedostoja johon tallennetaan nimi=arvo pareja.
INI-tiedostoa voidaan käyttää tallentamaan käyttäjän asetukset helposti. Käytämällä INIfiles käännösyksikköä (unit) ja TINIFile luokkaa voidaan työskennellä helposti INI-tiedostojen kanssa. Tämä käännösyksikkö (unit) kuuluu FCL:n. Currently only INI files compliant with the Microsoft standard are supported, so using sections is obligatory.
Tällä hetkellä vain INI-tiedostot noudattaen standardin tuetaan, joten käyttämällä kohdat on pakollista.
INI-tiedostot
INI tiedostoissa käytetään sulkuja luomaan osioita (Sections), joka sisältää avaimet ja avaimen arvot. Avain ja sitä vastaava arvo erotetaan yhtäsuuruusmerkillä ( avain = arvo ).
Osioiden nimet laitetaan hakasulkeiden sisään ([Osio]).
Kommentit ovat yleensä sallittua ja on merkitty puolipisteellä (;) rivin alussa. Koska INI-tiedostot eivät ole täysin standardoituja, muita merkkejä käytetään myös, kuten #
Nykyään XML-tiedostoja käytetään usein merkkijono varastointiin INI-tiedostojen sijasta, koska INI-tiedostot eivät tue suuria merkkijonoja hyvin. Kuitenkin INI-tiedostoa voi käyttää myös Linuxin / Unix-asetuksissa.
Esimerkki INI-tiedosto:
; Kommentti. INI-tiedoston alku
; Tyhjät rivit ohitetaan
; Huomaa tähän ei ole osiota määritelty.
Compiler=Delphi
; Avain: Compiler
; Arvo: Delphi
[General]
; Tämä aloittaa General osion
Compiler=FreePascal
; Avain Compiler ja arvo FreePascal
Ini tiedoston lukemisen esimerkki
Alla oleva konsoli (komentorivi) sovellus näyttää kuinka luetaan ini tiedostoja. Testateksi sitä joudut luomaan seuraavanlaisen ini tiedoston joka on nimeltään "C:\DB.ini".
Editoi se niin että se sisältää osio nimeltä INIDB ja seuraavia avaimet ja arvot:
[INIDB]
; Save as C:\DB.ini
Author=Adam
Pass=
DBFile=C:\Money.dat
Nyt siirrytään koodiin.
Program IniSample;
{$mode objfpc}{$H+}
Uses
Classes,SysUtils,INIFiles;
Var
INI:TINIFile;
Author,Pass,DBFile:String;
PassEnter:String;
begin
// Luodaan olio, täsmennetään sitä niin että se löytää ini-tiedoston:
INI := TINIFile.Create('C:\DB.ini');
// Luetaan merkkijono (string) INI-tiedostosta.
// Voidaan myös lukea boolean tyyppistä tietoa jne.
Author := INI.ReadString('INIDB','Author','');
Pass := INI.ReadString('INIDB','Pass','');
DBFile := INI.ReadString('INIDB','DBFile','');
if Pass <> '' then
begin
Writeln('Password Required');
Repeat
Readln(PassEnter);
if not (PassEnter = Pass) then Writeln('Wrong Password');
until(PassEnter = Pass);
Writeln('Correct Password');
end;
Writeln('Author : '+Author);
Writeln('File : '+DBFile);
Writeln('Password : '+Pass);
Readln;
// Käytön lopuksi täytyy kutsua olion Free metodia
// ... Vaikka tämä olisi kääritty try..finally lohkoon
// niin kohde vapautuu, riippumatta mahdollisista virheistä
Ini.Free;
end.
Luokan perustietoa
TINIFile luokassa on monia erilaisia ominaisuuksia, ja toimintoja, joita voidaan käyttää.
CaseSensitive - Tämän ominaisuuden avulla voit määritellä eroavatko avaimet ja osiot silloin kun kirjaimet ovat isoja tai pieniäi. Oletusarvoisesti ne eivät eroa.
ReadString - Tällä on kolme arvoa. Esimmäinen kertoo mistä osiosta etsitään. Toinen kertoo avaimen. Kolmas on oletusarvo siihen tapaukseen missä avain ja / tai osio kohta ei löytynyt.
WriteString - Tällä on myös kolme arvoa. Esimmäinen kertoo osion. Toinen kertoo avaimen ja kolmas on arvo jotka kaikki tallennetaan. Jos avain ja osio on jo olemassa niin avain korvataan uudella arvolla.
ReadSections - Madollisttaa ottamaan osioita INI-tiedostosta ja laittaa ne TStrings luokkaan (tai TStringList:n AS operatorilla).
DeleteKey - Poistaa olemassa olevan avaimen tietyssä osiossa.
EraseSection - Poistaa osion ja kaikki sen tiedot.
On olemassa enemmän toimintoja, mutta tämä on tarpeeksi jotta pääset alkuun.
Dokumentaatio
Free Pascal documentation on INI files