Sign in Join
Wiki copytemporary

Using INI Files/fi: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## Ini-tiedostot
22
33### Johdanto
44
55INI-tiedostot ovat ns tekstitiedostoja johon tallennetaan nimi=arvo pareja.
66
77INI-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 \[<http://en.wikipedia.org/wiki/INI_file>\| Microsoft standard\] are supported, so using \[<http://en.wikipedia.org/wiki/INI_file#Sections>\| sections\] is obligatory.
88
9-`Tällä hetkellä vain INI-tiedostot noudattaen `[`standardin`](http://en.wikipedia.org/wiki/INI_file%7CMicrosoftin)` tuetaan, joten käyttämällä kohdat on pakollista.`
9+```text
10+Tällä hetkellä vain INI-tiedostot noudattaen standardin tuetaan, joten käyttämällä kohdat on pakollista.
11+```
1012
1113### INI-tiedostot
1214
1315INI 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 ).
1416
1517Osioiden nimet laitetaan hakasulkeiden sisään (\[Osio\]).
1618
1719Kommentit 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 \#
1820
1921Nykyää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.
2022
2123Esimerkki INI-tiedosto:
2224
2325``` ini
2426; Kommentti. INI-tiedoston alku
2527
2628; Tyhjät rivit ohitetaan
2729
2830; Huomaa tähän ei ole osiota määritelty.
2931Compiler=Delphi
3032; Avain: Compiler
3133; Arvo: Delphi
3234
3335[General]
3436; Tämä aloittaa General osion
3537Compiler=FreePascal
3638; Avain Compiler ja arvo FreePascal
3739```
3840
3941### Ini tiedoston lukemisen esimerkki
4042
4143Alla oleva konsoli (komentorivi) sovellus näyttää kuinka luetaan ini tiedostoja. Testateksi sitä joudut luomaan seuraavanlaisen ini tiedoston joka on nimeltään "C:\DB.ini".
4244
4345Editoi se niin että se sisältää osio nimeltä INIDB ja seuraavia avaimet ja arvot:
4446
4547``` ini
4648[INIDB]
4749; Save as C:\DB.ini
4850Author=Adam
4951Pass=
5052DBFile=C:\Money.dat
5153```
5254
5355Nyt siirrytään koodiin.
5456
5557``` pascal
5658Program IniSample;
5759
5860{$mode objfpc}{$H+}
5961
6062Uses
6163 Classes,SysUtils,INIFiles;
6264
6365Var
6466 INI:TINIFile;
6567 Author,Pass,DBFile:String;
6668 PassEnter:String;
6769
6870begin
6971 // Luodaan olio, täsmennetään sitä niin että se löytää ini-tiedoston:
7072 INI := TINIFile.Create('C:\DB.ini');
7173 // Luetaan merkkijono (string) INI-tiedostosta.
7274 // Voidaan myös lukea boolean tyyppistä tietoa jne.
7375 Author := INI.ReadString('INIDB','Author','');
7476 Pass := INI.ReadString('INIDB','Pass','');
7577 DBFile := INI.ReadString('INIDB','DBFile','');
7678 if Pass <> '' then
7779 begin
7880 Writeln('Password Required');
7981 Repeat
8082 Readln(PassEnter);
8183 if not (PassEnter = Pass) then Writeln('Wrong Password');
8284 until(PassEnter = Pass);
8385 Writeln('Correct Password');
8486 end;
8587 Writeln('Author : '+Author);
8688 Writeln('File : '+DBFile);
8789 Writeln('Password : '+Pass);
8890 Readln;
8991 // Käytön lopuksi täytyy kutsua olion Free metodia
9092 // ... Vaikka tämä olisi kääritty try..finally lohkoon
9193 // niin kohde vapautuu, riippumatta mahdollisista virheistä
9294 Ini.Free;
9395end.
9496```
9597
9698### Luokan perustietoa
9799
98100TINIFile luokassa on monia erilaisia ​​ominaisuuksia, ja toimintoja, joita voidaan käyttää.
99101
100102**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.
101103
102104**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.
103105
104106**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.
105107
106108**ReadSections** - Madollisttaa ottamaan osioita INI-tiedostosta ja laittaa ne TStrings luokkaan (tai TStringList:n AS operatorilla).
107109
108110**DeleteKey** - Poistaa olemassa olevan avaimen tietyssä osiossa.
109111
110112**EraseSection** - Poistaa osion ja kaikki sen tiedot.
111113
112114On olemassa enemmän toimintoja, mutta tämä on tarpeeksi jotta pääset alkuun.
113115
114116### Dokumentaatio
115117
116118[Free Pascal documentation on INI files](http://lazarus-ccr.sourceforge.net/docs/fcl/inifiles/index.html)
117119
118120## Katso myös
119121
120122- [[HistoryFiles]]
121123- [[XML Tutorial]]
122124
123125---
124126*From the Free Pascal wiki, page "Using INI Files/fi", as it stood on 2020-03-04 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history