Using INI Files/fi

From Free Pascal wiki
Jump to navigationJump to search

العربية (ar) Deutsch (de) English (en) español (es) suomi (fi) français (fr) русский (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

Katso myös