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

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"););

Popular posts from this blog

Identifying “long and narrow” polygons in with PostGISlength and width of polygonWhy postgis st_overlaps reports Qgis' “avoid intersections” generated polygon as overlapping with others?Adjusting polygons to boundary and filling holesDrawing polygons with fixed area?How to remove spikes in Polygons with PostGISDeleting sliver polygons after difference operation in QGIS?Snapping boundaries in PostGISSplit polygon into parts adding attributes based on underlying polygon in QGISSplitting overlap between polygons and assign to nearest polygon using PostGIS?Expanding polygons and clipping at midpoint?Removing Intersection of Buffers in Same Layers

Masuk log Menu navigasi

อาณาจักร (ชีววิทยา) ดูเพิ่ม อ้างอิง รายการเลือกการนำทาง10.1086/39456810.5962/bhl.title.447410.1126/science.163.3863.150576276010.1007/BF01796092408502"Phylogenetic structure of the prokaryotic domain: the primary kingdoms"10.1073/pnas.74.11.5088432104270744"Towards a natural system of organisms: proposal for the domains Archaea, Bacteria, and Eucarya"1990PNAS...87.4576W10.1073/pnas.87.12.4576541592112744PubMedJump the queueexpand by handPubMedJump the queueexpand by handPubMedJump the queueexpand by hand"A revised six-kingdom system of life"10.1111/j.1469-185X.1998.tb00030.x9809012"Only six kingdoms of life"10.1098/rspb.2004.2705169172415306349"Kingdoms Protozoa and Chromista and the eozoan root of the eukaryotic tree"10.1098/rsbl.2009.0948288006020031978เพิ่มข้อมูล