Kuidas installida ini-faili. Mis on INI-failid ja milleks need on?

Haskelli jaoks. Siis otsustasin, et parem on jagada artikkel 3 osaks. Esimeses osas näitan teile, kuidas kirjutada kontekstivaba grammatikat, et kirjeldada ini-faili sisu.

ini failid

Ini-laiendiga failid on laialt levinud mitte ainult Windowsi maailmas, vaid ka teistes süsteemides (näiteks php.ini). Ini-faili vorming on väga lihtne: fail on jagatud osadeks, igas jaotises võib olla suvaline arv kirjeid kujul "parameeter=väärtus". Parameetrite nimed erinevates jaotistes võivad olla samad.
[section_1]
parameeter1=väärtus1
parameeter2=väärtus2

[section_2]
parameeter1=väärtus1
parameeter2=väärtus2

Iga parameetrit saab käsitleda jaotise nime ja parameetri nime kaudu: umbes nagu "section_1"."param2" .

Ini-failidel on kommentaarid – read, mis algavad tähega ";".

Grammatika ehitamine

Proovime seda vormingut kirjeldada kontekstivaba grammatikana laiendatud Backus-Nauri tähistuses (loodan, et see on selge ka neile, kes sellega kursis ei ole).

Kirjeldame, mis on ini-fail. Selleks kirjeldame kõiki konstruktsioone alates kõige keerukamast (tegelikult ini-fail ise) kuni kõige lihtsama (mis on identifikaator). Iga selline konstruktsioon on seotud spetsiaalse tähisega ( mitteterminaalne), mis on määratletud muude mitteterminalide ja tavaliste sümbolite (terminalide) kaudu, mida ma teen
panna jutumärkidesse.

  • Ini-faili andmed (inidata) sisaldavad mitut jaotist (lokkis sulud tähendavad kordamist suvalise arvu kordi).
    inidata = (jaotis) .
  • Jaotis koosneb nurksulgudesse pandud jaotise nimest, millele järgneb järgmisel real mitu kirjet (parameetrit).
    jaotis = "[", ident, "]", "\n", (kirje) .
  • Kirje koosneb parameetri nimest, märgist "=", parameetri väärtusest ja lõpeb rea lõpuga.
    kirje = ident, "=", väärtus, "\n" .
  • Määratleme, mis on identifikaator: kõik, mis koosneb tähtedest, numbritest või märkidest "_.,:()()-#@&*|" (tegelikult võib olla ka teisi tegelasi).
    ident = (täht | number | "_" | "." | "," | ":" | "(" | ")" | "(" | ")" | "-" | "#" | "@" | "&" |"*" | "|") .

    See määratlus ei ole täiesti õige, sest identifikaator peab koosnema vähemalt ühest tähemärgist. Muudame seda järgmiselt:

  • Nüüd defineerime, mis on väärtus: kõik peale stringi lõpu (lühiduse huvides pidin tähistust laiendama)
    väärtus = (mitte "\n") .
Tuleb veel arvestada, et mõnele parserile/inimesele meeldib panna lisatühikuid ja tühje ridu.
Selleks peame kasutusele võtma veel kaks mitteterminali: stringis kasutatavad tühimärgid ja lihtsalt tühimärgid.

Ruumid võivad olla peaaegu kõikjal. Parandame siis veidi grammatikat:
inidata = tühikud, (jaotis) .
sektsioon = "[", ident, "]", stringSpaces, "\n", (sisestus) .
kirje = ident, stringSpaces, "=", stringSpaces, väärtus, "\n", tühikud .
ident = identChar, (identChar) .
identChar = täht | digitaalne | "_" | "." | "," | ":" | "(" | ")" | "(" | ")" | "-" | "#" | "@" | "&" |"*" | "|" .
väärtus = (mitte "\n") .
stringSpaces = (" " | "\t") .
tühikud = (" " | "\t" | "\n" | "\r") .

See on põhimõtteliselt kõik, mis puudutab grammatikat =).

Keegi vist märkas, et ma ei öelnud kommentaaride kohta midagi. Ma ei unustanud - neid on lihtsalt lihtsam "käepidemetega" =) välja lõigata (harjutusena saate grammatikat parandada nii, et see võtaks arvesse kommentaare).

Tähtis: Pettusin veidi ja ehitasin grammatika nii, et selles ei oleks vasakpoolset rekursiooni. Mõlema raamatukogu ehitamist kaalun

Väga sageli, eriti suurte projektide puhul, on vaja salvestada mõned programmi sätted, et neid hiljem uuesti laadides rakendada. Kujutage ette seda olukorda – kirjutasite kliendile programmi. Ta käivitas selle ja see ilmus akna keskele, nagu plaanisite. See tundus talle aga ebamugav ning ta nihutas selle külili ja vähendas akna suurust, et paralleelselt mõne muu rakendusega töötada. Kõik on korras, programm teeb oma töö ja kasutaja on rahul. Kui ta aga järgmisel päeval programmi uuesti laadib, on see taas ekraani keskel ja sellel on algsed mõõtmed. Kasutaja peab selle jälle küljele nihutama ja vormi suurust vähendama. Pisiasi? Just sellistest pisiasjadest kujuneb aga programmeerija kohta arvamus ja kui see arvamus on halb, siis pole sul kliente! Programmeerija peab oma programmis esitama kõik kasutaja nõuded ja soovid, ka need, mida ta ise veel ei tea. Noh, öelge mulle, kuidas saab programmi tellinud kasutaja teada, et vorm võib programmeerimise ajal hõivata erineva positsiooni - ekraani või töölaua keskel või arenduse ajal? Kuni ta teie programmiga praktikas kokku puutub, ei mõtle ta teile isegi öelda, et programm peaks oma seaded meeles pidama!

Lihtsamal juhul on vaja salvestada ainult 5 parameetrit - akna olek (minimeeritud, maksimeeritud), selle asukoht töölaua vasakust ja ülemisest servast, laius ja kõrgus. Ja kui loote keerukama programmi seadete paneeliga, kus on hunnik märkeruutusid ja raadionuppe? Seal saab kasutaja muuta teie "vaikeseadeid" ja määrata ise. Kujutage ette, kui kasutaja kulutaks pool tundi teie programmi "enda jaoks" seadistamiseks ja kui ta taaskäivitas, avastas ta, et kõiki tema sätteid ei salvestatud!

Kasutajaseadete salvestamiseks on kaks võimalust – ini-failid ja Windowsi süsteemiregister. Igal neist meetoditest on oma plussid ja miinused.

Kui salvestate sätted Windowsi registrisse, on need kasutaja eest peidetud, mistõttu ei saa ta neis midagi rikkuda. Teisest küljest, kui arvutisse on registreeritud mitu kasutajat, saavad kõik programmi sätteid "enda jaoks" muuta. Negatiivne külg on see, et kui Windows installitakse uuesti, tuleb ka programm uuesti installida, kuna see pole registris.

Kui salvestate sätted ini-faili, salvestab programm sätted isegi operatsioonisüsteemi uuesti installimisel. Lisaks on sätete salvestamist ini-faili lihtsam rakendada. Selles loengus õpime, kuidas töötada ainult ini-failidega.

INI-failidel on palju eeliseid. Nendega on lihtne ja mugav töötada, need toetavad kolme andmetüüpi – String, Integer ja Boolean. Lisaks, kui salvestaksime sätted lihtsasse tekstifaili, siis ühe seadistuse muutmine eeldaks kogu faili ülekirjutamist ja ini-fail võimaldab ainult selle seadistuse üle kirjutada.

Loomulikult on selliste failide kasutamisel teatud reeglid.

Esiteks, kui hakkate töötama ini-failidega, peate jaotises Uses, vahetult sõna liidese all, lisama mooduli inifiles, see kirjeldab kõiki ini-failidega töötamise andmeid. Mooduli lisamine on lihtne – loendis on viimase mooduli järel semikoolon. Asendage see komaga, lisage sõna inifiles ja seejärel semikoolon.

Edasi. Vaikimisi luuakse ini-failid kataloogis, kuhu Windows on installitud. Ilmub fail *.ini laiendiga ja teie seaded. See pole alati mugav, eriti kui eeldate, et Windowsi saab uuesti installida. Parem on luua fail kataloogi, kuhu teie programm on installitud. Kuidas ma selle kataloogi leian?

ExtractFilePath(Application.ExeName)

Õpime praktikas ini-faili looma. Looge uus rakendus. Lisage inifiles moodul kasutusalade jaotisesse.

Kõigepealt paneme kirja parameetrite salvestamise programmi sulgemisel. Selleks loo vormi jaoks OnDestroy sündmuste töötleja. Selline sündmus leiab aset vormiobjekti hävitamisel ehk siis, kui programm lõpeb. Looge jaotis var ja kirjutage sinna ini failitüübi muutuja:

Pange tähele, et loome faili samas kataloogis, kust programm käivitatakse. Kui me lihtsalt osutasime

ini:= TInifile.Create("minu.ini");

siis loodaks fail Windowsi kataloogi! Järgmisena salvestage akna asukoht, st vormi atribuudid Vasak ja Ülemine:

//salvesta akna asukoht:

ini.WriteInteger("Positsioon", "L", Vorm1.Vasak);

ini.WriteInteger("Positsioon", "T", Vorm1.Ülemine);

Ini-failis on kolm protseduuri erinevat tüüpi andmete kirjutamiseks. WriteInteger, WriteString ja WriteBool. Vastavalt sellele kirjutavad need funktsioonid täisarvu, stringi ja tõeväärtuse tüübi. Nendel funktsioonidel on 3 parameetrit. Esimene on faili ini-osa. Failis endas tuleb see välja nurksulgudes. Saate jaotisele nimetada mis tahes, mitte tingimata positsiooni. Teine parameeter on salvestatud parameetri nimi, näites määrasime selle parameetri tähtede "L" ja "T" kujul, kuigi võiks kirjutada ka "Left", "Top" või midagi muud.

Funktsiooni kolmas parameeter on selle väärtus. Kuna vormi atribuudid Left ja Top on täisarvud, kasutame täisarvude kirjutamiseks funktsiooni WriteInteger. Ülaltoodud näite tulemusel ilmub ini-faili sellele sarnane silt:

//salvesta akna suurus:

ini.WriteInteger("Suurus", "W", Vorm1.Laius);

ini.WriteInteger("Suurus", "H", Vorm1.Kõrgus);

Pärast parameetrite salvestamist ini-faili tuleb see sulgeda:

// sulgege fail:

ini.Tasuta;

Kõik, fail suletakse ja sätted salvestatakse. Salvestage projekt, kompileerige ja vaadake, kuidas see töötab. Avage loodud ini-fail, see on lihtne tekstifail, mida saate lugeda ja isegi redigeerida.

Oleme aga teinud vaid poole tööst. Salvestasime sätted, aga kuidas neid lugeda? Seda kõike tehakse täpselt samamoodi, ainult vastupidi. Vormi hävitamise atribuudi asemel kasutame vormi loomise atribuuti (onCreate), kirjutamise asemel lugemist ning vormi omaduste väärtuste faili kirjutamise asemel loeme need failist välja ja määrame need väärtused vormide omadustele. Sellest lähtuvalt on meil ini-failist parameetrite lugemiseks kolm protseduuri: ReadInteger, ReadString ja ReadBool.

Seega loome vormi onCreate jaoks sündmuste töötleja:

(vormi loomisel)

protseduur TForm1.FormCreate(Saatja: TObject);

ini: TIniFile; //inifile tüüpi muutuja deklareerimine

//nüüd loo see:

ini:= TInifile.Create(ExtractFilePath(Application.ExeName)+"my.ini");

//rakenda akna asukoht:

Vorm1.Left:= ini.ReadInteger("Positsioon", "L", 329);

Vorm1.Ülemine:= ini.ReadInteger("Positsioon", "T", 261);

//lugege akna mõõtmeid:

Vorm1.Width:= ini.ReadInteger("Suurus", "W", 384);

Vorm1.Kõrgus:= ini.ReadInteger("Suurus", "H", 312);

// sulgege fail:

ini.Tasuta;

Siin on huvitav kirjutamisfunktsioonide kolmas parameeter. Näib, et me ei vaja väärtusi, võtame need näidatud jaotistest. Kuid kolmas parameeter on vajalik, see määrab "vaikeväärtuse".

Vormi loomisel määrake selle suurus ja paigutus ning vaadake atribuutide Left, Top, Width ja Height väärtusi. Kirjutate need väärtused vaikeväärtustena. Kui faili veel ei eksisteerinud või selle parameetri lugemisel ilmnes viga, näiteks ei leitud vajalikku stringi, kasutatakse vaikeväärtust. Kui soovitud rida loetakse, rakendatakse sellel määratud väärtus.

Salvestage projekt, kompileerige ja vaadake, kuidas programm töötab. Saadud ini-fail sisaldab järgmist teksti:

Proovige enne programmi käivitamist mõnda parameetrit muuta, näiteks täpsustage

Seejärel käivita programm ja jälgi akna asendi muutumist! Muide, see on hea viis programmi peitmiseks. Kui määrate atribuudile Left suurema arvu, kui atribuudil Width (akna laius) on, ja muudate arvu samal ajal negatiivseks, liigub programmi aken justkui ekraani vasakule. Programm töötab, seda on näha süsteemireal, aga akent pole!

Libistage tööprogrammi akent ja väljuge sellest. Jookse uuesti – viimase akna asukoht on salvestatud!

Jätkame programmiga ja loome stringi parameetri. Paigalda vormile komponent Label, mille atribuudis Caption kirjuta: "Sisestage uus akna pealkiri". Installige allpool redigeerimiskomponent, kasutaja sisestab sellesse teksti. Selle all on nupp "Rakenda".

Eemaldage komponendist Redigeeri tekst, kirjutage nuputöötlejasse järgmine tekst:

Vorm1.Caption:= Redigeeri1.Tekst;

See eeldab, et te pole vormi ega redigeerimise nimesid muutnud. Kui muutsite vormi nimeks näiteks fMain, siis kirjutage

//salvestage vormi päis:

ini.WriteString("Param", "C", Form1.Caption);

Ja protseduuris onCreate, enne ini-faili sulgemist, lisage uuesti:

//loe vormi päist:

Vorm1.Caption:= ini.ReadString("Param", "C", "Programm");

Nagu näete, ei erine stringidega töötamine palju numbritega töötamisest! Salvestage projekt, kompileerige ja vaadake, kuidas see töötab. Sisestage aknale uus nimi, klõpsake nuppu "Rakenda", väljuge programmist ja avage see uuesti. Programmi süsteemireal olev tekst tuleks säilitada.

Nüüd töötame Boolean parameetriga. Paigaldage vormile üks märkeruut. Pealkirja atribuudis kirjutage "Parameeter". Tegelikult pole meile vahet, millist parameetrit saab salvestada, näiteks kas lubada nupul klõpsamist, kas lubada vormi “Teave” kuvamine, kas mõni komponent jääb nähtavaks või nähtamatuks... Parameetreid, mida võiksite salvestada, võib olla palju. Nüüd on meie jaoks oluline üks asi: CheckBox komponendi atribuut Checked võib olla kas True (parameeter on lubatud) või False (parameeter on keelatud). See on see, mille peame ini-faili salvestama ja seejärel sellest lugema.

Enne ini-faili sulgemist sündmuse protseduuris onDestroy pidage meeles lipu olekut:

//jätke meelde lipp:

ini.WriteBool("Param", "CB1", CheckBox1.Checked);

Kui märkeruut on keelatud, siis kirjutatakse ini-faili parameetrisse False asemel 0. Kui see on lubatud, siis 1.

Nüüd, enne ini-faili sulgemist, lisage sündmuse protseduuris onCreate read ini-failist andmete lugemiseks:

//lugege märkeruudu olekut:

CheckBox1.Checked:= ini.ReadBool("Param", "CB1", True);

Vaikimisi on märkeruut lubatud. Kommentaarid on minu arvates üleliigsed. Proovige lisada igasse programmi parameetrite salvestamine.

Üksikasjalikud ametlikud vorminguspetsifikatsioonid puuduvad. Alates operatsioonisüsteemist Windows 95 peetakse INI-faile aegunuks ja Microsoft soovitab kasutada asendusena süsteemiregistrit (). Sellest hoolimata kasutavad INI-faile jätkuvalt nii teiste tootjate rakendused kui ka Microsofti OS-i komponendid. Näiteks kasutatakse Windows NT4/2000/XP-s faili boot.ini käivitamisel mitme operatsioonisüsteemi hulgast valimiseks.

Kuigi INI-failid on Windowsis populaarsust kogunud, saab neid kasutada mis tahes OS-is. Selle vormingu lihtsa ülesehituse tõttu on neid lihtne programmiliselt töödelda ning sellel on piisavalt selge vorm inimese lugemiseks ja toimetamiseks. On tekstiredaktoreid (nt SciTE või Notepad++), mis kasutavad selle vormingu jaoks süntaksi esiletõstmist ja voltimist, muutes INI-failide käsitsi redigeerimise lihtsamaks.

Sektsioonide kasutamine parameetrite eraldamiseks aitab andmeid korrastada, kuid keerukama hierarhilise struktuuriga suurte sätete salvestamiseks sobib paremini XML-vorming.

Failiformaat

ini-failid on lihttekstifailid, mida saab redigeerida ja vaadata mis tahes tekstiredaktoriga. ini failid on järgmises vormingus:

; mõni kommentaar # Unixi stiilis kommentaar ; kommentaar jaotise var1=väärtus_1 kohta ; mõnikord on ühe parameetri kommentaar lubatud var2=väärtus_2 var1=väärtus_1 var2=väärtus_2 ; mõnikord on lubatud loetleda mitu väärtust, eraldatuna komadega var1=väärtus_1_1, väärtus_1_2, väärtus_1_3 var2=väärtus_2 ; Zend Frameworkis defineeritakse massiiv järgmiselt var1=väärtus_1_1 var1=väärtus_1_2 var1=väärtus_1_3 var2=väärtus_2 ; Mõnikord puuduvad väärtused Mode= Vid= FolderType=Generic

INI-fail võib sisaldada:

  • tühjad read ;
  • kommentaarid - sümbolist " ; » (semikoolon) rea lõpuni;
  • jaotiste pealkirjad - stringid, mis koosnevad nurksulgudes oleva jaotise pealkirjast " »;
  • parameetrite väärtused - read nagu " võti=väärtus ».

Kokkulepped

INI-failivormingu jaoks puudub üldtunnustatud standard. Kuigi selliste failide üldine struktuur on tavaliselt säilinud, lisavad paljud tarkvaratooted sellesse lisafunktsioone või vastupidi piiranguid.

  • Kommentaarid . Mõned rakendused (nt Samba) käsitlevad nii ";" kui ka "#" kommentaari algusena.
  • Kaldkriips . Mõnikord on lubatud kasutada kaldkriipsu "\", et deklareerida järgmine rida selle rea jätkuna. Sel juhul töödeldakse neid ühe terve reana. Mõnikord on erimärkide sisestamiseks võimalik kasutada ka "\", näiteks "\n" reavahetuse tähistamiseks.
  • Samad parameetrid . Enamasti on kahe identse võtme olemasolu samas jaotises keelatud (töötletakse ainult viimast võtit).
  • Dubleerivad jaotiste nimed . Tavaliselt, kui failis on mitu sama nimega jaotist, töödeldakse ainult viimast. Mõned rakendused ühendavad kõigi selliste jaotiste sisu üheks.

Rakenduse näide

Mõelge koodile, mis töötleb antud õiget ini-faili ja väljastab selle spetsiaalsel kujul:

int main() ( freopen("sisend.txt", "r", stdin); freopen("output.txt", "w", stdout); int n; cin >> n; cin.get(); kaart > mp; string from = ""; jaoks (int i = 0; i< n; i++) { string s; getline(cin, s); for (size_t j = 0; j < s.size();) { if (s[j] == " ") s.erase(j, 1); else j++; } if (s.size() == 0 || s == ";") { continue; } if (s == "[") { s.erase(0, 1); s.erase(s.size() - 1, 1); from = s; mp; } else { mp = s.substr(s.find("=") + 1, s.size() - s.find("=")); } } for (map < string, map > :: iteraator it = mp.begin(); see != mp.end(); it++) ( if (see -> esimene != "") ( cout<< "[" << it ->esiteks<<"]" << endl; } for (map < string, string >::iterator itt = mp.begin(); itt != mp.end(); itt++) ( cout<< itt ->esiteks<< "=" << itt ->teiseks<< endl; } } return 0; }

Vaata ka

Kirjutage arvustus artikli ".ini" kohta

Lingid

Väljavõte, mis iseloomustab .ini

„Vabandust, Madonna. Ta ütles vaid, et sa eksid väga ja et armastus pole kunagi kellelegi head toonud. Kui see sulle midagi ütleb, Isidora.
Ma lihtsalt noogutasin, püüdes oma paanikas mõtteid koguda. Ja püüdes Moronele mitte näidata, kui šokeeritud ma tema uudisest olin, ütles ta võimalikult rahulikult:
"Kas ma tohin teid ravida, monseigneur?" Mulle tundub, et sa jälle ei sega mu "nõia" abi. Ja aitäh uudise eest... Isegi halbade uudiste eest. Alati on parem vaenlase plaane ette teada, isegi kõige hullemaid, kas pole? ..
Morone vaatas ettevaatlikult mulle silma, püüdes valusalt leida neist vastust mõnele tema jaoks olulisele küsimusele. Kuid mu hing sulgus end maailmast, et mitte haigeks jääda ... et eelseisvale katsumusele vastu pidada ... Ja kardinali kohtas nüüd ainult pähe õpitud "ilmalik" pilk, mis ei võimaldanud minu sisse tungida. õudusest tardunud hing...
"Kas sa kardad, madonna?" küsis Morone vaikselt. Sa oled temast tuhat korda tugevam! Miks sa teda kardad?!...
- Tal on midagi, mille vastu ma ei suuda veel võidelda... Ja ometi ei suuda ma teda tappa. Oh, uskuge mind, teie Eminents, kui ma vaid leiaksin selle mürgise rästiku võtme! .. - ja mõistusele tulles soovitas ta kohe uuesti: - Las ma ikka hoolitsen teie eest? Ma leevendan teie valu.
Kuid kardinal naeratades keeldus.
"Homme olen teises, rahulikumas kohas. Ja ma loodan, et Caraffa unustab mind mõneks ajaks. Aga sina, Madonna? Mis sinust saab? Ma ei saa sind vanglast välja aidata, aga mu sõbrad on piisavalt võimsad. Kas ma saan teile abiks olla?
„Tänan teid, monsignor, teie mure eest. Aga mul ei ole asjatuid lootusi, lootes siit ära saada... Ta ei lase mul kunagi lahti... Mitte mu vaene tütar. Ma elan selle hävitamiseks. Tal ei tohiks olla kohta inimeste seas.
– Kahju, et ma sind varem ära ei tundnud, Isidora. Võib-olla võiksime saada headeks sõpradeks. Nüüd hüvasti. Sa ei saa siia jääda. Isa tuleb kindlasti mulle "palju õnne" soovima. Sa ei pea temaga siin kohtuma. Päästa oma tütar, Madonna... Ja ära anna alla Caraffe'ile. Jumal olgu teiega!
"Millisest jumalast sa räägid, monsignor?" küsisin kurvalt.
- Kindlasti mitte selle kohta, kelle poole Caraffa palvetab! .. - Morone naeratas lahku minnes.
Seisin hetkeks paigal, püüdes oma hinges meenutada selle imelise inimese pilti, ja hüvastijätuks lehvitades läksin koridori.
Taevas avanes ärevuse, paanika ja hirmu tulvaga!.. Kus oli nüüd mu vapper üksildane tüdruk?! Mis ajendas teda Meteorast lahkuma?.. Millegipärast ei vastanud Anna mu tungivatele kõnedele, kuigi teadsin, et ta kuuleb mind. See sisendas veelgi suuremat ärevust ja ma pidasin vastu ainult viimasest jõust, et mitte alluda paanikale, mis mu hinge põletas, sest teadsin, et Caraffa kasutab kindlasti ära kõik mu nõrkused. Ja siis ma pean kaotama, enne kui hakkan vastu hakkama...
Olles pensionil "oma" kambritesse, "lakkusin" vanu haavu, isegi mitte lootes, et need kunagi paranevad, vaid püüdes lihtsalt olla võimalikult tugev ja rahulik, kui avaneb võimalus Caraffaga sõda alustada ... pole mõtet loota imet, mis see oli, sest teadsin väga hästi, et meie puhul pole imet ette nähtud... Kõik, mis juhtub, pean tegema ainult ise.
Tegevusetus tappis, pannes mind tundma end kõigi poolt unustatud, abituna ja mittevajalikuna... Ja kuigi teadsin väga hästi, et eksin, näris "musta kahtluse" uss edukalt põletikulist aju, jättes sinna ebakindlusest ja kahetsusest ereda jälje. ...
Ma ei kahetsenud, et olin ise Karaffas ... Aga ma kartsin Anna pärast kohutavalt. Ja ka, ma ei suutnud ikka veel endale andestada oma isa ja Girolamo, mu armastatud ja minu jaoks maailma parimate inimeste surma ... Kas ma suudan kunagi neile kätte maksta? .. Kas kõigil pole õigus öelda, et Caraffat ei saa võita? Et ma ei hävita seda, vaid suren lihtsalt ise rumalalt ära?.. Kas põhjal oli tõesti õigus, kutsudes mind Meteorasse? Ja kas lootus hävitada paavst kogu selle aja elas ainult minus üksi?! ..
Ja üks asi veel... Tundsin, et olen väga väsinud... Ebainimlikult, kohutavalt väsinud... Vahel isegi tundus - kas tõesti poleks parem Meteorasse minna?.. Ju siis keegi käis seal? .. Ja miks Nad ei hoolinud sellest, et inimesed nende ümber surevad. Nende jaoks oli oluline ÕPPIDA, saada salajasi TEADMISI, kuna nad pidasid end erakordselt andekaks ... Aga teisest küljest, kui nad tõesti olid nii “erandlikud”, siis kuidas nad saaksid unustada kõige lihtsama, kuid minu arvates arvamus, meie käsk on väga oluline - ära mine puhkama, kui teised sinu abi vajavad... Kuidas nad said nii kergesti sulguda, isegi ringi vaatamata, püüdmata teisi aidata? .. Kuidas nad oma hinge rahustasid? ..

Kõige tavalisem INI-failide laiendamise probleemide põhjus on lihtsalt arvutisse installitud õigete rakenduste puudumine. Sel juhul piisab INI-faile toetava rakenduse leidmisest, allalaadimisest ja installimisest – sellised programmid on saadaval allpool.

Otsingusüsteem

Sisestage faililaiend

Abi

Vihje

Pange tähele, et mõningaid kodeeritud andmeid failidest, mida meie arvuti ei loe, saab mõnikord vaadata Notepadis. Nii loeme tekstikatkeid või numbreid - Tasub kontrollida, kas see meetod töötab ka INI failide puhul.

Mida teha, kui loendis olev rakendus on juba installitud?

Sageli peaks installitud rakendus automaatselt linkima INI-failiga. Kui seda ei juhtunud, saab INI-faili käsitsi äsja installitud rakendusega käsitsi linkida. Paremklõpsake lihtsalt INI-failil ja seejärel valige saadaolevast loendist suvand "Vali vaikeprogramm". Seejärel peate valima valiku "Sirvi" ja leidma oma lemmikrakenduse. Tehtud muudatused tuleb kinnitada valikuga "OK".

Programmid, mis avavad INI-faili

Windows
MacOS
Linux

Miks ma ei saa INI-faili avada?

INI-failidega seotud probleemidel võivad olla ka muud põhjused. Mõnikord ei lahenda probleemi isegi INI-faile toetava tarkvara installimine arvutisse. Avamise ja INI-failiga töötamise võimatuse põhjus võib olla ka:

Ebajärjekindlad INI-failide lingid registrikirjetes
- avatava INI-faili rikkumine
- INI-faili nakatumine (viirused)
- liiga väike arvutiressurss
- aegunud draiverid
- INI laienduse eemaldamine Windowsi süsteemi registrist
- INI laiendust toetava programmi mittetäielik installimine

Nende probleemide lahendamine peaks viima INI-failide tasuta avamiseni ja nendega töötamiseni. Juhul, kui arvutis on failiprobleemid ikka veel, tuleb appi võtta asjatundja, kes selgitab välja täpse põhjuse.

Minu arvuti ei näita faililaiendeid, mida peaksin tegema?

Windowsi süsteemi standardinstallatsioonides ei näe arvutikasutaja INI faililaiendit. Seda saab seadetes edukalt muuta. Lihtsalt minge "Juhtpaneelile" ja valige "Vaade ja isikupärastamine". Seejärel peate sisestama "Kaustasuvandid" ja avama "Vaade". Vahekaardil "Vaade" on valik "Peida teadaolevate failitüüpide laiendid" - peate valima selle valiku ja kinnitama toimingu, vajutades nuppu "OK". Sel hetkel peaksid kõik faililaiendid, sealhulgas INI, kuvama failinime järgi sorteerituna.

ini tialization fail on konfiguratsioonifail, mis sisaldab Microsoft Windowsi, Windows NT ja mõne rakenduse seadete andmeid.

Ilmus Windowsi esimestest versioonidest. Windowsi versioonis 1.01 oli see ainult WIN.INI fail. Windows 3.0 lisas faili SYSTEM.INI. Ja siis hakkas nende arv kiiresti ja kontrollimatult kasvama.

Üksikasjalikud ametlikud vorminguspetsifikatsioonid puuduvad. Alates operatsioonisüsteemist Windows 95 peetakse INI-faile aegunuks ja Microsoft soovitab kasutada asendusena registrit. Sellest hoolimata kasutavad INI-faile jätkuvalt nii teiste tootjate rakendused kui ka Microsofti OS-i komponendid. Näiteks kasutatakse Windows NT4/2000/XP-s faili boot.ini käivitamisel mitme operatsioonisüsteemi hulgast valimiseks.

Kuigi INI-failid on Windowsis populaarsust kogunud, saab neid kasutada mis tahes OS-is. Selle vormingu lihtsa ülesehituse tõttu on neid lihtne programmiliselt töödelda ning sellel on piisavalt selge vorm inimese lugemiseks ja toimetamiseks. On tekstiredaktoreid (nt SciTE või Notepad++), mis kasutavad selle vormingu jaoks süntaksi esiletõstmist ja voltimist, muutes INI-failide käsitsi redigeerimise lihtsamaks.

Sektsioonide kasutamine parameetrite eraldamiseks aitab andmeid korrastada, kuid keerukama hierarhilise struktuuriga suurte sätete salvestamiseks sobib paremini XML- või JSON-vorming.

Failiformaat

ini-failid on lihttekstifailid, mida saab redigeerida ja vaadata mis tahes tekstiredaktoriga. ini failid on järgmises vormingus:

; mõni kommentaar # Unixi stiilis kommentaar ; jaotise kommentaar var1 = väärtus_1 ; mõnikord on ühe parameetri kommentaar lubatud var2 = väärtus_2 var1 = väärtus_1 var2 = väärtus_2 ; mõnikord on lubatud loetleda mitu komadega eraldatud väärtust var1 = väärtus_1_1, väärtus_1_2, väärtus_1_3 vari2 = väärtus_2 ; Zend Frameworkis defineeritakse massiiv järgmisel viisil var1 = väärtus_1_1 var1 = väärtus_1_2 var1 = väärtus_1_3 var2 = väärtus_2 ; Mõnikord pole väärtusi Mode=Vid=FolderType=Üldine

INI-fail võib sisaldada:

  • tühjad read ;