Skip to main content

INI Tartalomjegyzék Formátum Példa INI fájlok feldolgozása Alternatívák Jegyzetek Források További információk Navigációs menüellenőrizveGetPrivateProfileStringconfigparserparse_ini_fileinifileQSettingsGetPrivateProfileString functionApache Documentation for org.apache.commons.configuration.HierarchicalINIConfigurationArchiválvaINI-értelmező C++ nyelvenINI-értelmező Objective-C nyelvenINI-értelmező Python nyelvenINI-értelmező és -generáló Common LispbenINI-értelemző tutorial Java nyelvenAz INI fájl Cloanto-implementációjaAz INI fájl Nickel-implementációja

Multi tool use
Multi tool use

Fájlformátumok


platformonszöveges állománykulcs-érték párokatMS-DOSWindowsWindows MEregistrytXMLLinuxUnixpontosvesszőkettőskeresztwhitespaceGetPrivateProfileStringsztringetCa fenti INI példafájlbólPythonconfigparserPHPparse_ini_fileRubyinifilegemC++QtQSettingsosztályonXMLJSONYMLSQLite










INI


A Wikipédiából, a szabad enciklopédiából



Ugrás a navigációhoz
Ugrás a kereséshez


Az INI fájlformátum különböző számítógépes platformon elterjedt formátuma a konfigurációs fájloknak.
Az INI egyszerű szöveges állomány, mely szekciókra osztott kulcs-érték párokat tartalmaz.


Az MS-DOS és a 16 bites korai Windows rendszerektől egészen a Windows ME verzióig az INI fájlformátum volt a rendszer, a driverek, boot, stb. elsődleges konfigurációs háttere. Az alkalmazások körében is az INI volt a legnépszerűbb az egyedi beállítások tárolásánál.


A Microsoft a Windows NT-vel vezette be a registryt, amely már nem szövegesen tárolja a rendszer, a felhasználók és az alkalmazások konfigurációit. A későbbi Windows rendszerek szintén a registryt használják, de a .NET-re épülő alkalmazások körében gyakoriak az XML alapú megoldások is.


Az „INI fájl” elnevezés a leggyakrabban alkalmazott kiterjeszésből (.INI) származik, ami az „initialization”, vagy „inicializáció” rövidítése. Elterjedt kiterjesztések még a .CFG, .conf és a .txt.


A Linux (és más Unix) rendszerek, illetve a platform-független szoftverek szintén használják a konfigurációiknál. Szövegesen olvasható, géppel is könnyen értelmezhető, ami nagyban hozzájárult a széles körű elterjedéséhez.




Tartalomjegyzék





  • 1 Formátum

    • 1.1 Tulajdonságok (property)


    • 1.2 Szekciók (section)


    • 1.3 Nagybetű, kisbetű


    • 1.4 Kommentek


    • 1.5 Egyéb változatok

      • 1.5.1 Üres sorok


      • 1.5.2 Kommentek


      • 1.5.3 Azonos kulcsnevek


      • 1.5.4 Escape karakterek


      • 1.5.5 Globális tulajdonságok


      • 1.5.6 Hierarchia


      • 1.5.7 Kulcs-érték elválasztó


      • 1.5.8 Whitespace




  • 2 Példa


  • 3 INI fájlok feldolgozása


  • 4 Alternatívák


  • 5 Jegyzetek


  • 6 Források


  • 7 További információk




Formátum



Tulajdonságok (property)


Az INI fájlok alapelemei a tulajdonságok vagy propertyk. minden tulajdonság egy kulcs és egy érték rendezett párjából áll, egyenlőségjellel (=) elválasztva.


kulcs=érték


Szekciók (section)


A tulajdonságokat szabadon lehet ún. szekciókba csoportosítani. A szekciók neve tetszőleges lehet, szögletes zárójelek közé kell egy sorba írni ([ és ]). Minden ez után leírt tulajdonság az adott szekcióhoz tartozik. A szekció végét implicit módon a következő szekció megadása jelzi, minthogy nincs explicit szekció vége jel, ugyanis az INI-ben nem lehet a szekciókat egymásba ágyazni.


[szekciónév]
a=1
b=2


Nagybetű, kisbetű


A Windows implementációja nem tesz különbséget a nagy- és kisbetűk között.[1]



Kommentek


A sor elejére írt pontosvessző (;) kommentet jelöl, az értelmező figyelmen kívül hagyja a sort.


; comment text


Egyéb változatok


Az INI formátum nincs pontosan definiálva, nincs szabványa. Számos program, vagy INI értelmező szabadon kezelheti az egyes nyelvi elemeket.



Üres sorok


Kezdetleges INI-feldolgozóknál előfordulhat, hogy nem engedélyezettek az üres sorok. Egy sor vagy szekciódefiníció, vagy tulajdonság, vagy komment kell, hogy legyen.



Kommentek


Létezik olyan megvalósítás, ahol a sor-kommentet a szriptnyelvekhez hasonlóan a kettőskereszt (#) jelöli.


Egyes implementációkban a komment bárhol kezdőthet egy sorban, ahol a pontosvessző jelöli. Máshol (pl. a Windows GetPrivateProfileString rendszerhívása) az egész sornak kommentnek kell lennie.



Azonos kulcsnevek


A legtöbb megvalósítás nem engedi meg, hogy egy szekción belül egy kulcsnév többször előforduljon. A második előfordulás vagy az értelmezés megszakítását, vagy a tulajdonság figyelmen kívül hagyását, vagy az előző előfordulás felülírását eredményezheti. Néhány program megengedheti a névismélődést, ún. multi-valued properties formájában.



Escape karakterek


Az escape karaktereket legelterjedtebben a visszaper () karakterrel használhatjuk.





























Általános escape szekvenciák
Szekvencia
Jelentés

\
(egyszerű visszaper, escape-eli az escape karaktert)



Null karakter

a

Bell/Rendszercsengő

b

Backspace/visszatörlés, ritkán Bell karakter

t

Tabulátor

r

Kocsi vissza

n

Újsor karakter

;

Pontosvessző

#

Kettőskereszt

=

Egyenlőségjel

:

Kettőspont

x????

Unicode karakter hexadecimálisan megadva (????)


Globális tulajdonságok


Opcionálisan globális tulajdonságok is értelmezhetőek, ha a szekciódefiníciók előtt lettek deklarálva.[2]



Hierarchia


Habár az INI formátum nem hierarchikus, bizonyos névkonvenciók alkalmazásával lehet a szekciók között látszólagos hierarchiát alkalmazni. Ha az A szekció része a B alszekció, melynek része a C al-alszekció, akkor például a [A.B.C] szekciómegjelöléssel ez a hiányzó funkció helyettesíthető (ezt alklamazza pl. a Windows xstart.ini állománya). Használatos még a [ABC] és a [A] szekció, B,C,P = V kulcs-érték pár konvenció is.


Nincs rá szabvány, így nem egyértelmű, hogy egy adott modul, amelyik ezen megközelítések valamelyikét alkalmazza, az alkalmazásfejlesztőre bízza az álhierarchia ilyen jellegű megvalósítását, vagy saját maga, a névkonvenciók alapján eleve egy hierarchikus hozzáférést biztosít a tárolt tulajdonságokhoz.



Kulcs-érték elválasztó


Néhány implementáció kettőspontot (:) használ kulcs-érték elválasztónak (az egyenlőségjel helyett).



Whitespace


A whitespace értelmezése különböző. A legtöbb modul figyelmen kívül hagyja az elválasztó karakter körüli szóközöket, némely még az értékeken belül is (ilyen esetben például a „host name” és a „hostname” jelentése megegyezik). De előfordulhat, hogy egy feldolgozó minden karaktert figyelembe vesz az egyenlőségjeltől a sorvégéig.



Példa


A következő fiktív példa két szekciót tartalmaz: az első a szoftver felhasználójának adatait, a második pedig a használt adatbázis-kapcsolatot. A kommentek az utolsó módosítást, illetve a szervereléréshez szóló javaslatot tartalmazzák.


; last modified 1 April 2001 by John Doe
[owner]
name=John Doe
organization=Acme Widgets Inc.

[database]
; use IP address in case network name resolution is not working
server=192.0.2.62
port=143
file="payroll.dat"


INI fájlok feldolgozása


A Windows Profile APIján keresztül lehetőséget ad INI fájlok írására és olvasására. Például a GetPrivateProfileString függvény a megadott INI fájl megadott szekciójából egy sztringet (karakterláncot) ad vissza.


A következő C program azt mutatja be, hogy hogyan lehet sztringet, illetve egész számot kiolvasni a fenti INI példafájlból:


#include <windows.h>

int main(int argc, _TCHAR *argv[])

_TCHAR dbserver[1000];
int dbport;
GetPrivateProfileString("database", "server", "127.0.0.1", dbserver, sizeof(dbserver),
".\dbsettings.ini");
dbport = GetPrivateProfileInt("database", "port", 143, ".\dbsettings.ini");
// N.B. WritePrivateProfileInt() does not exist
return 0;


A Python standard könyvtárának configparser modulja, a PHP parse_ini_file függvénye, a Ruby környezetben pedig a inifile gem végzi az INI fájlok feldolgozását.


A C++ nyelvhez többek közt a Qt library nyújt platformfüggetlen INI-feldolgozást a QSettings osztályon keresztül.


QSettings settings("dbsettings.ini", QSettings::IniFormat);
settings.beginGroup("database");
settings.setValue("server", "192.0.2.62");
settings.endGroup();


Alternatívák


Konfiguráció tárolására a Windows a registryt javasolja, de ezen kívül más leírónyelvek, mint pl. az XML, JSON, YML, vagy egyszerű adatbázisok, mint az SQLite is használhatóak.



Jegyzetek



  1. GetPrivateProfileString function. Microsoft Developer Network. Microsoft. (Hozzáférés: 2012. június 2.)


  2. Apache Documentation for org.apache.commons.configuration.HierarchicalINIConfiguration Archiválva 2012. november 12-i dátummal a Wayback Machine-ben, The Apache Software Foundation




Források


Ez a szócikk részben vagy egészben az INI file című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel.



További információk


  • INI-értelmező C++ nyelven

  • INI-értelmező Objective-C nyelven

  • INI-értelmező Python nyelven

  • INI-értelmező és -generáló Common Lispben

  • INI-értelemző tutorial Java nyelven

  • Az INI fájl Cloanto-implementációja

  • Az INI fájl Nickel-implementációja


  • InformatikaInformatikai portál
    • összefoglaló, színes tartalomajánló lap








A lap eredeti címe: „https://hu.wikipedia.org/w/index.php?title=INI&oldid=20666698”





Navigációs menü

























(window.RLQ=window.RLQ||[]).push(function()mw.config.set("wgPageParseReport":"limitreport":"cputime":"0.104","walltime":"0.801","ppvisitednodes":"value":655,"limit":1000000,"ppgeneratednodes":"value":0,"limit":1500000,"postexpandincludesize":"value":4993,"limit":2097152,"templateargumentsize":"value":822,"limit":2097152,"expansiondepth":"value":9,"limit":40,"expensivefunctioncount":"value":1,"limit":500,"unstrip-depth":"value":0,"limit":20,"unstrip-size":"value":5689,"limit":5000000,"entityaccesscount":"value":0,"limit":400,"timingprofile":["100.00% 97.870 1 -total"," 51.57% 50.475 1 Sablon:Jegyzetek"," 48.31% 47.280 2 Sablon:References"," 30.86% 30.202 1 Sablon:Cite_web"," 30.52% 29.873 1 Sablon:Fordítás"," 17.70% 17.327 1 Sablon:Portál"," 14.55% 14.237 1 Sablon:A(z)"," 11.31% 11.069 1 Sablon:Névelő_adott_szóhoz"," 8.90% 8.708 1 Sablon:ISO_639"," 4.25% 4.156 2 Sablon:Hasáb_vége"],"scribunto":"limitreport-timeusage":"value":"0.008","limit":"10.000","limitreport-memusage":"value":696677,"limit":52428800,"cachereport":"origin":"mw1256","timestamp":"20190304151652","ttl":2592000,"transientcontent":false););"@context":"https://schema.org","@type":"Article","name":"INI","url":"https://hu.wikipedia.org/wiki/INI","sameAs":"http://www.wikidata.org/entity/Q1141412","mainEntity":"http://www.wikidata.org/entity/Q1141412","author":"@type":"Organization","name":"Contributors to Wikimedia projects","publisher":"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":"@type":"ImageObject","url":"https://www.wikimedia.org/static/images/wmf-hor-googpub.png","datePublished":"2014-02-20T17:18:32Z","dateModified":"2018-11-16T04:14:13Z"(window.RLQ=window.RLQ||[]).push(function()mw.config.set("wgBackendResponseTime":128,"wgHostname":"mw1324"););sbn Z,zB0U38z1G0ZjLbuDDVW6EvP7p8
iB5rOjEAe4rvbGqWLw,stKzqBBqkQuCloxeGRZnKakDml7mgL74W MEiuk,n,ir nfreP g

Popular posts from this blog

Masuk log Menu navigasi

ジョン・ファウルズ

16 Maret Daftar isi Peristiwa | Kelahiran | Meninggal | Hari raya dan peringatan | Menu navigasis