So installieren Sie die Ini-Datei. Was sind INI-Dateien und wozu dienen sie?

Für Haskel. Dann habe ich entschieden, dass es besser ist, den Artikel in 3 Teile zu brechen. Im ersten Teil zeige ich Ihnen, wie Sie eine kontextfreie Grammatik schreiben, um den Inhalt einer INI-Datei zu beschreiben.

ini-Dateien

Dateien mit der Endung ini sind nicht nur in der Windows-Welt, sondern auch in anderen Systemen weit verbreitet (z. B. php.ini). Das Format der INI-Datei ist sehr einfach: Die Datei ist in Abschnitte unterteilt, wobei jeder Abschnitt beliebig viele Einträge der Form „Parameter=Wert“ enthalten kann. Parameternamen in verschiedenen Abschnitten können gleich sein.
[Abschnitt 1]
parameter1=wert1
parameter2=wert2

[Sektion 2]
parameter1=wert1
parameter2=wert2

Jeder Parameter kann über einen Abschnittsnamen und einen Parameternamen angesprochen werden: etwa "Abschnitt_1".."param2" .

Ini-Dateien haben Kommentare - Zeilen, die mit ";" beginnen.

Grammatik aufbauen

Lassen Sie uns versuchen, dieses Format als kontextfreie Grammatik in erweiterter Backus-Naur-Notation zu beschreiben (ich hoffe, es wird auch denen klar sein, die damit nicht vertraut sind).

Lassen Sie uns beschreiben, was eine INI-Datei ist. Dazu beschreiben wir alle Konstruktionen von den komplexesten (eigentlich die INI-Datei selbst) bis zu den einfachsten (was ist ein Bezeichner). Jeder dieser Konstruktionen ist eine spezielle Bezeichnung zugeordnet ( nicht-terminal), die in Bezug auf andere Nicht-Terminals und reguläre Symbole (Terminals) definiert ist, was ich tun werde
in Anführungszeichen setzen.

  • Die Ini-Datei data (inidata) enthält mehrere Abschnitte (geschweifte Klammern bedeuten beliebig oft Wiederholung).
    inidata = (Abschnitt) .
  • Ein Abschnitt besteht aus einem in eckige Klammern eingeschlossenen Abschnittsnamen, gefolgt von mehreren Einträgen (Parametern) in der nächsten Zeile.
    section = "[", ident, "]", "\n", (Eintrag) .
  • Der Eintrag besteht aus dem Parameternamen, dem „=“-Zeichen, dem Parameterwert und endet mit dem Zeilenende.
    Eintrag = Ident, "=", Wert, "\n" .
  • Lassen Sie uns definieren, was ein Bezeichner ist: alles, was aus Buchstaben, Zahlen oder Zeichen besteht "_.,:()()-#@&*|" (eigentlich kann es andere Charaktere geben).
    ident = (Buchstabe | Ziffer | "_" | "." | "," | ":" | "(" | ")" | "(" | ")" | "-" | "#" | "@" | "&" |"*" | "|") .

    Diese Definition ist nicht ganz richtig, weil Bezeichner muss mindestens ein Zeichen lang sein. Ändern wir es mal so:

  • Lassen Sie uns nun definieren, was der Wert ist: alles außer dem Ende der Zeichenfolge (der Kürze halber musste ich die Notation Notation erweitern)
    Wert = (nicht "\n") .
Es bleibt zu berücksichtigen, dass einige Parser / Personen gerne zusätzliche Leerzeichen und Leerzeilen einfügen.
Dazu müssen wir zwei weitere Nicht-Terminals einführen: Leerzeichen, die in der Zeichenfolge verwendet werden, und nur Leerzeichen.

Die Räume können fast überall sein. Korrigieren wir also die Grammatik ein wenig:
inidata = Leerzeichen, (Abschnitt) .
section = "[", ident, "]", stringSpaces, "\n", (entry) .
entry = ident, ZeichenfolgeLeerzeichen, "=", ZeichenfolgeLeerzeichen, Wert, "\n", Leerzeichen .
ident = identChar, (identChar) .
identChar = Buchstabe | digital | "_" | "." | "," | ":" | "(" | ")" | "(" | ")" | "-" | "#" | "@" | "&" |"*" | "|" .
Wert = (nicht "\n") .
stringSpaces = (" " | "\t") .
Leerzeichen = (" " | "\t" | "\n" | "\r") .

Das ist im Grunde alles, was Grammatik betrifft =).

Jemand muss bemerkt haben, dass ich nichts über Kommentare gesagt habe. Ich habe nicht vergessen - es ist nur einfacher, sie mit "Griffen" auszuschneiden =) (als Übung können Sie die Grammatik so korrigieren, dass Kommentare berücksichtigt werden).

Wichtig: Ich habe ein wenig geschummelt und die Grammatik so aufgebaut, dass es keine linke Rekursion darin gibt. Beide Bibliotheken erwäge ich zu bauen

Besonders bei großen Projekten ist es sehr oft notwendig, einige Programmeinstellungen zu speichern, um sie später beim erneuten Laden zu übernehmen. Stellen Sie sich diese Situation vor - Sie haben ein Programm für einen Kunden geschrieben. Er startete es und es erschien in der Mitte des Fensters, wie Sie es geplant hatten. Dies erschien ihm jedoch unpraktisch, weshalb er es an die Seite rückte und das Fenster verkleinerte, um parallel mit einer anderen Anwendung zu arbeiten. Alles ist in Ordnung, das Programm erfüllt seinen Zweck und der Benutzer ist zufrieden. Wenn er das Programm jedoch am nächsten Tag erneut lädt, wird es wieder zentriert auf dem Bildschirm angezeigt und hat seine ursprünglichen Abmessungen. Der Benutzer muss es wieder zur Seite schieben und das Formular verkleinern. Eine Kleinigkeit? Aus solchen Kleinigkeiten wird jedoch eine Meinung über einen Programmierer gebildet, und wenn diese Meinung schlecht ist, werden Sie keine Kunden haben! Der Programmierer muss in seinem Programm alle Anforderungen und Wünsche des Benutzers erfüllen, auch solche, die er selbst noch nicht kennt. Sagen Sie mir, wie kann der Benutzer, der das Programm bestellt hat, wissen, dass das Formular während der Programmierung eine andere Position einnehmen kann - in der Mitte des Bildschirms oder Desktops oder die Position während der Entwicklung? Bis er in der Praxis auf Ihr Programm stößt, wird er nicht einmal daran denken, Ihnen zu sagen, dass sich das Programm seine Einstellungen merken soll!

Im einfachsten Fall müssen nur 5 Parameter gespeichert werden - der Zustand des Fensters (minimiert, maximiert), seine Position vom linken und oberen Rand des Desktops, seine Breite und Höhe. Und wenn Sie ein komplexeres Programm mit einem Einstellungsfeld erstellen, in dem es eine Reihe von Kontrollkästchen und Optionsfeldern gibt? Dort kann der Benutzer Ihre "Standard"-Einstellungen ändern und eigene festlegen. Stellen Sie sich vor, ein Benutzer verbrachte eine halbe Stunde damit, Ihr Programm "für sich selbst" einzurichten, und stellte beim Neustart fest, dass nicht alle seine Einstellungen gespeichert wurden!

Es gibt zwei Möglichkeiten, Benutzereinstellungen zu speichern: INI-Dateien und die Windows-Systemregistrierung. Jede dieser Methoden hat ihre Vor- und Nachteile.

Wenn Sie die Einstellungen in der Windows-Registrierung speichern, sind sie vor dem Benutzer verborgen, daher kann er nichts in ihnen verderben. Sind hingegen mehrere Benutzer auf dem Rechner angemeldet, kann jeder die Programmeinstellungen „für sich“ ändern. Der Nachteil ist, dass bei einer Neuinstallation von Windows auch das Programm neu installiert werden muss, da es nicht in der Registrierung enthalten ist.

Wenn Sie die Einstellungen in einer INI-Datei speichern, speichert das Programm die Einstellungen auch bei einer Neuinstallation des Betriebssystems. Außerdem ist das Speichern von Einstellungen in einer INI-Datei einfacher zu implementieren. In dieser Vorlesung werden wir lernen, nur mit INI-Dateien zu arbeiten.

INI-Dateien haben viele Vorteile. Es ist einfach und bequem, mit ihnen zu arbeiten, sie unterstützen drei Datentypen - String, Integer und Boolean. Wenn wir die Einstellungen in einer einfachen Textdatei speichern würden, würde das Ändern einer der Einstellungen außerdem das Überschreiben der gesamten Datei erfordern, und die INI-Datei erlaubt Ihnen, nur diese Einstellung zu überschreiben.

Natürlich gibt es einige Regeln für die Verwendung solcher Dateien.

Wenn Sie mit INI-Dateien arbeiten möchten, müssen Sie im Abschnitt „uses“ direkt unter dem Wort „interface“ das Modul „inifiles“ hinzufügen, das alle Daten für die Arbeit mit INI-Dateien beschreibt. Das Hinzufügen eines Moduls ist einfach – hinter dem letzten Modul in der Liste befindet sich ein Semikolon. Ersetzen Sie es durch ein Komma, fügen Sie das Wort inifiles hinzu und fügen Sie dann ein Semikolon hinzu.

Des Weiteren. Standardmäßig werden INI-Dateien in dem Verzeichnis erstellt, in dem Windows installiert ist. Es erscheint eine Datei mit der Erweiterung *.ini und Ihren Einstellungen. Dies ist nicht immer praktisch, insbesondere wenn Sie davon ausgehen, dass Windows neu installiert werden kann. Es ist viel besser, die Datei in dem Verzeichnis zu erstellen, in dem Ihr Programm installiert ist. Wie finde ich dieses Verzeichnis?

ExtractFilePath(Application.ExeName)

Lassen Sie uns lernen, wie man in der Praxis eine INI-Datei erstellt. Erstellen Sie eine neue Anwendung. Fügen Sie das Modul inifiles zum Abschnitt uses hinzu.

Zunächst schreiben wir das Speichern von Parametern beim Beenden des Programms auf. Erstellen Sie dazu einen OnDestroy-Ereignishandler für das Formular. Ein solches Ereignis tritt auf, wenn das Formularobjekt zerstört wird, dh wenn das Programm endet. Erstellen Sie einen Abschnitt var und schreiben Sie dort eine Variable vom Typ INI-Datei:

Beachten Sie, dass wir die Datei in demselben Verzeichnis erstellen, aus dem das Programm gestartet wird. Wenn wir einfach angedeutet

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

dann würde die Datei im Windows-Verzeichnis erstellt! Als nächstes speichern Sie die Position des Fensters, d. h. die Left- und Top-Eigenschaften des Formulars:

//Fensterposition speichern:

ini.WriteInteger("Position", "L", Form1.Left);

ini.WriteInteger("Position", "T", Form1.Top);

Die INI-Datei hat drei Prozeduren zum Schreiben verschiedener Datentypen. WriteInteger, WriteString und WriteBool. Dementsprechend schreiben diese Funktionen einen Integer-, einen String- und einen booleschen Typ. Diese Funktionen haben 3 Parameter. Der erste ist der ini-Abschnitt der Datei. In der Datei selbst steht es in eckigen Klammern. Sie können den Abschnitt beliebig benennen, nicht unbedingt Position. Der zweite Parameter ist der Name des gespeicherten Parameters, im Beispiel haben wir diesen Parameter in Form der Buchstaben „L“ und „T“ angegeben, obwohl man auch „Left“, „Top“ oder etwas anderes schreiben könnte.

Der dritte Parameter einer Funktion ist ihr Wert. Da die Eigenschaften Left und Top des Formulars ganzzahlige Werte sind, verwenden wir die WriteInteger-Funktion, um ganze Zahlen zu schreiben. Als Ergebnis des obigen Beispiels erscheint eine ähnliche Beschriftung in der INI-Datei:

//Fenstergröße speichern:

ini.WriteInteger("Größe", "W", Form1.Width);

ini.WriteInteger("Größe", "H", Form1.Höhe);

Nachdem wir die Parameter in die INI-Datei gespeichert haben, muss diese geschlossen werden:

// Datei schließen:

ini.Free;

Alles, die Datei wird geschlossen und die Einstellungen werden gespeichert. Speichern Sie das Projekt, kompilieren Sie es und sehen Sie, wie es funktioniert. Öffnen Sie die erstellte INI-Datei, dies ist eine einfache Textdatei, die Sie lesen und sogar bearbeiten können.

Allerdings haben wir erst die halbe Arbeit gemacht. Wir haben die Einstellungen gespeichert, aber wie kann man sie lesen? All dies geschieht auf genau die gleiche Weise, nur in umgekehrter Reihenfolge. Anstelle der Formularzerstörungseigenschaft verwenden wir die Formularerstellungseigenschaft (onCreate), statt Schreiben verwenden wir Lesen, und anstatt die Werte der Formulareigenschaften in eine Datei zu schreiben, werden wir sie aus der Datei lesen und zuweisen diese Werte zu den Eigenschaften der Formulare. Dementsprechend haben wir drei Prozeduren zum Lesen von Parametern aus einer INI-Datei: ReadInteger, ReadString und ReadBool.

Also erstellen wir einen Event-Handler für das onCreate-Formular:

(beim Erstellen des Formulars)

Prozedur TForm1.FormCreate(Sender: TObject);

ini: TINiFile; //eine Variable vom Typ inifile deklarieren

//jetzt erstellen:

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

// Fensterposition anwenden:

Form1.Left:= ini.ReadInteger("Position", "L", 329);

Form1.Top:= ini.ReadInteger("Position", "T", 261);

// Fensterabmessungen lesen:

Form1.Width:= ini.ReadInteger("Size", "W", 384);

Form1.Height:= ini.ReadInteger("Size", "H", 312);

// Datei schließen:

ini.Free;

Interessant ist hier der dritte Parameter in den Write-Funktionen. Es scheint, dass wir die Werte nicht brauchen, wir nehmen sie aus den angegebenen Abschnitten. Aber der dritte Parameter ist erforderlich, er gibt den "Standard"-Wert an.

Legen Sie beim Erstellen des Formulars die richtige Größe und Position fest und sehen Sie sich die Eigenschaftswerte „Links“, „Oben“, „Breite“ und „Höhe“ an. Sie werden diese Werte als Standardwerte schreiben. Wenn die Datei noch nicht existierte oder beim Lesen dieses Parameters ein Fehler aufgetreten ist, beispielsweise die erforderliche Zeichenfolge nicht gefunden wurde, wird der Standardwert angewendet. Wird die gewünschte Zeile gelesen, so wird der darin angegebene Wert übernommen.

Speichern Sie das Projekt, kompilieren Sie es und sehen Sie, wie das Programm funktioniert. Die resultierende INI-Datei enthält den folgenden Text:

Versuchen Sie, einige Parameter zu ändern, bevor Sie das Programm starten, z. B. angeben

Führen Sie dann das Programm aus und beobachten Sie, wie sich die Fensterposition ändert! Übrigens ist dies eine gute Möglichkeit, das Programm zu verstecken. Wenn Sie für die Eigenschaft Left eine größere Zahl angeben, als die Eigenschaft Width (Breite des Fensters) hat, und gleichzeitig die Zahl negativ machen, wird das Programmfenster sozusagen nach links verschoben. Das Programm läuft, es ist in der Systemzeile zu sehen, aber es gibt kein Fenster!

Schieben Sie das Arbeitsprogrammfenster und verlassen Sie es. Erneut ausführen - die Position des letzten Fensters wird gespeichert!

Lassen Sie uns das Programm fortsetzen und einen Zeichenfolgenparameter erstellen. Installieren Sie die Label-Komponente auf dem Formular, in deren Caption-Eigenschaft Sie Folgendes schreiben: „Geben Sie einen neuen Fenstertitel ein“. Installieren Sie die Edit-Komponente unten, der Benutzer gibt Text ein. Darunter befindet sich ein Button mit der Aufschrift „Übernehmen“.

Entfernen Sie den Text aus der Edit-Komponente, schreiben Sie Folgendes in den Button-Handler:

Form1.Caption:= Edit1.Text;

Dies setzt voraus, dass Sie die Namen des Formulars oder Bearbeiten nicht geändert haben. Wenn Sie den Namen des Formulars beispielsweise in fMain geändert haben, schreiben Sie

// Formularkopf speichern:

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

Und in der onCreate-Prozedur fügen Sie erneut vor dem Schließen der INI-Datei Folgendes hinzu:

//Lesen Sie die Kopfzeile des Formulars:

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

Wie Sie sehen, unterscheidet sich die Arbeit mit Zeichenketten nicht wesentlich von der Arbeit mit Zahlen! Speichern Sie das Projekt, kompilieren Sie und sehen Sie, wie es funktioniert. Geben Sie einen neuen Namen für das Fenster ein, klicken Sie auf die Schaltfläche "Übernehmen", beenden Sie das Programm und öffnen Sie es erneut. Der Text in der Systemzeile des Programms soll erhalten bleiben.

Lassen Sie uns nun mit dem booleschen Parameter arbeiten. Installieren Sie eine CheckBox auf dem Formular. Schreiben Sie in die Caption-Eigenschaft "Parameter". Dabei spielt es für uns keine Rolle, welche Parameter gespeichert werden können, ob beispielsweise das Klicken auf einen Button erlaubt ist, ob die Anzeige des „Über“-Formulars erlaubt ist, ob eine Komponente sichtbar oder unsichtbar sein soll ... Die Parameter, die Sie möglicherweise speichern möchten, können sehr umfangreich sein. Nun ist uns eines wichtig: Die Checked-Eigenschaft der CheckBox-Komponente kann entweder True (der Parameter ist aktiviert) oder False (der Parameter ist deaktiviert) sein. Dies müssen wir in der INI-Datei speichern und dann daraus lesen.

Bevor Sie die INI-Datei in der onDestroy-Ereignisprozedur schließen, merken Sie sich den Status des Flags:

// erinnere dich an die Flagge:

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

Wenn die Checkbox deaktiviert ist, wird anstelle von False eine 0 in den Parameter der Ini-Datei geschrieben, wenn sie aktiviert ist, wird eine 1 geschrieben.

Fügen Sie nun vor dem Schließen der Ini-Datei in der Ereignisprozedur onCreate Zeilen zum Lesen von Daten aus der Ini-Datei hinzu:

// Status des Kontrollkästchens lesen:

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

Standardmäßig ist das Kontrollkästchen aktiviert. Kommentare sind meiner Meinung nach überflüssig. Versuchen Sie, das Speichern von Parametern in jedes Ihrer Programme aufzunehmen.

Es gibt keine detaillierte offizielle Formatspezifikation. Seit Windows 95 gelten INI-Dateien als veraltet und Microsoft schlägt vor, die Systemregistrierung () als Ersatz zu verwenden. Dennoch werden INI-Dateien weiterhin sowohl von Anwendungen anderer Hersteller als auch von Betriebssystemkomponenten von Microsoft verwendet. Beispielsweise wird die Datei boot.ini in Windows NT4/2000/XP beim Booten verwendet, um aus mehreren Betriebssystemen auszuwählen.

Obwohl INI-Dateien unter Windows an Popularität gewonnen haben, können sie auf jedem Betriebssystem verwendet werden. Die einfache Struktur dieses Formats macht es einfach, sie programmgesteuert zu verarbeiten, und hat eine ausreichend klare Form für das menschliche Lesen und Bearbeiten. Es gibt Texteditoren (wie SciTE oder Notepad++), die Syntaxhervorhebung und -faltung für dieses Format verwenden, wodurch es einfacher wird, INI-Dateien von Hand zu bearbeiten.

Die Verwendung von Abschnitten zum Trennen von Parametern hilft beim Organisieren von Daten, aber zum Speichern großer Einstellungen mit einer komplexeren hierarchischen Struktur ist das XML-Format besser geeignet.

Datei Format

ini-Dateien sind einfache Textdateien, die mit jedem Texteditor bearbeitet und angezeigt werden können. ini-Dateien haben folgendes Format:

; irgendein Kommentar # Kommentar im Unix-Stil; Kommentar zum Abschnitt var1=value_1 ; manchmal ist ein Kommentar zu einem einzelnen Parameter erlaubt var2=Wert_2 var1=Wert_1 var2=Wert_2 ; manchmal ist es erlaubt, mehrere Werte durch Kommas getrennt aufzulisten var1=Wert_1_1, Wert_1_2, Wert_1_3 var2=Wert_2 ; im Zend Framework wird ein Array folgendermaßen definiert: var1=Wert_1_1 var1=Wert_1_2 var1=Wert_1_3 var2=Wert_2 ; Manchmal fehlen Werte Mode= Vid= FolderType=Generic

INI-Datei kann Folgendes enthalten:

  • leere Zeilen ;
  • Kommentare - vom Symbol " ; » (Semikolon) bis zum Zeilenende;
  • Abschnittsüberschriften - Zeichenfolgen, die aus dem Titel des Abschnitts bestehen, der in eckige Klammern eingeschlossen ist " »;
  • Parameterwerte - Zeilen wie " Schlüssel=Wert ».

Vereinbarungen

Es gibt keinen allgemein akzeptierten Standard für das INI-Dateiformat. Obwohl die allgemeine Struktur solcher Dateien normalerweise beibehalten wird, führen viele Softwareprodukte zusätzliche Funktionen oder umgekehrt Einschränkungen ein.

  • Kommentare . Einige Anwendungen (wie Samba) behandeln sowohl „;“ als auch „#“ als Beginn eines Kommentars.
  • Backslash . Manchmal ist es erlaubt, einen Backslash "\" zu verwenden, um die nächste Zeile als Fortsetzung dieser Zeile zu deklarieren. In diesem Fall werden sie als eine ganze Zeile verarbeitet. Manchmal ist es auch möglich, mit „\“ Sonderzeichen einzugeben, wie z. B. „\n“, um einen Zeilenumbruch anzuzeigen.
  • Gleiche Parameter . In den meisten Fällen ist das Vorhandensein von zwei identischen Schlüsseln im selben Abschnitt verboten (nur der letzte Schlüssel wird verarbeitet).
  • Doppelte Abschnittsnamen . Wenn die Datei mehrere Abschnitte mit demselben Namen enthält, wird normalerweise nur der letzte verarbeitet. Einige Anwendungen kombinieren die Inhalte aller dieser Abschnitte in einem.

Implementierungsbeispiel

Betrachten Sie den Code, der die angegebene korrekte INI-Datei verarbeitet und in einer speziellen Form ausgibt:

int main() ( freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); int n; cin >> n; cin.get(); map > mp; Zeichenfolge von = ""; für (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 > :: iterator it = mp.begin(); es != mp.end(); it++) ( if (it -> first !="") ( cout<< "[" << it ->Erste<<"]" << endl; } for (map < string, string >::iterator itt = mp.begin(); itt != mp.end(); itt++) (cout<< itt ->Erste<< "=" << itt ->zweite<< endl; } } return 0; }

siehe auch

Schreiben Sie eine Rezension zum Artikel ".ini"

Verknüpfungen

Ein Auszug, der .ini charakterisiert

„Es tut mir leid, Madonna. Er sagte nur, dass Sie sich sehr geirrt haben und dass die Liebe noch niemandem Gutes gebracht hat. Wenn dir das etwas sagt, Isidora.
Ich nickte nur und versuchte, meine panischen Gedanken zu sammeln. Und in dem Versuch, Morone nicht zu zeigen, wie schockiert ich über die Nachricht war, sagte sie so ruhig wie möglich:
„Darf ich Sie behandeln, Monseigneur?“ Es scheint mir, dass Sie sich wieder nicht in meine "Hexen" -Hilfe einmischen werden. Und danke für die Neuigkeiten... Sogar die schlechten Neuigkeiten. Es ist immer besser, die Pläne des Feindes im Voraus zu kennen, selbst die schlimmsten, nicht wahr? ..
Morone blickte mir vorsichtig in die Augen und versuchte mühsam, darin die Antwort auf eine für ihn wichtige Frage zu finden. Aber meine Seele schloß sich von der Welt ab, um nicht krank zu werden ... um der bevorstehenden Prüfung standzuhalten ... Und dem Kardinal begegnete jetzt nur noch ein eingeprägter „säkularer“ Blick, der es nicht erlaubte, in meine einzudringen Seele erstarrt vor Entsetzen ...
„Hast du Angst, Madonna?“ fragte Morone leise. Du bist tausendmal stärker als er! Warum hast du Angst vor ihm?!..
- Er hat etwas, das ich noch nicht bekämpfen kann ... Und doch kann ich ihn nicht töten. Oh, glauben Sie mir, Eminenz, wenn ich nur den Schlüssel zu dieser giftigen Viper finden könnte! .. - und als sie wieder zur Besinnung kam, schlug sie sofort wieder vor: - Soll ich mich noch um Sie kümmern? Ich werde deinen Schmerz lindern.
Aber der Kardinal lehnte lächelnd ab.
„Morgen werde ich an einem anderen, friedlicheren Ort sein. Und ich hoffe, Caraffa wird mich für eine Weile vergessen. Nun, was ist mit dir, Madonna? Was wird aus dir? Ich kann dir nicht aus dem Gefängnis helfen, aber meine Freunde sind mächtig genug. Darf ich Ihnen behilflich sein?
„Danke, Monsignore, für Ihre Sorge. Aber ich habe keine vergeblichen Hoffnungen und hoffe, hier rauszukommen ... Er wird mich niemals gehen lassen ... Nicht meine arme Tochter. Ich lebe, um es zu zerstören. Er sollte keinen Platz unter den Menschen haben.
– Schade, dass ich dich nicht früher erkannt habe, Isidora. Vielleicht könnten wir gute Freunde werden. Jetzt tschüss. Du kannst nicht hier bleiben. Papa wird bestimmt kommen, um mir „viel Glück“ zu wünschen. Sie müssen ihn hier nicht treffen. Rette deine Tochter, Madonna... Und gib Caraffe nicht auf. Gott sei mit dir!
„Von welchem ​​Gott sprechen Sie, Monsignore?“ fragte ich traurig.
- Sicherlich nicht über denjenigen, zu dem Caraffa betet!... - Morone lächelte zum Abschied.
Ich stand einen Moment still und versuchte, mich in meiner Seele an das Bild dieser wunderbaren Person zu erinnern, winkte zum Abschied und ging hinaus auf den Korridor.
Der Himmel öffnete sich mit einem Schwall von Angst, Panik und Angst!... Wo war mein tapferes, einsames Mädchen jetzt?! Was veranlasste sie, Meteora zu verlassen? … Aus irgendeinem Grund antwortete Anna nicht auf meine beharrlichen Anrufe, obwohl ich wusste, dass sie mich hören konnte. Dies löste noch größere Angst aus, und ich hielt nur mit letzter Kraft durch, um nicht der Panik zu erliegen, die meine Seele verbrannte, weil ich wusste, dass Caraffa sicherlich jede meiner Schwächen ausnutzen würde. Und dann muss ich verlieren, bevor ich überhaupt anfangen kann, Widerstand zu leisten ...
Nachdem ich mich in „meine“ Gemächer zurückgezogen hatte, „leckte“ ich alte Wunden und hoffte nicht einmal, dass sie jemals heilen würden, sondern versuchte einfach, so stark und ruhig wie möglich zu sein, falls sich die Gelegenheit bot, einen Krieg mit Caraffa zu beginnen ... Es Es macht keinen Sinn, auf ein Wunder zu hoffen, denn ich wusste genau, dass in unserem Fall keine Wunder vorhergesehen waren ... Alles, was passiert, werde ich nur selbst tun müssen.
Untätigkeit tötete, was dazu führte, dass ich mich von allen vergessen, hilflos und unnötig fühlte ... Und obwohl ich genau wusste, dass ich falsch lag, nagte der Wurm des „schwarzen Zweifels“ erfolgreich an dem entzündeten Gehirn und hinterließ dort eine helle Spur von Unsicherheit und Bedauern ...
Ich habe es nicht bereut, dass ich selbst in Karaffa war ... Aber ich hatte schreckliche Angst um Anna. Und außerdem konnte ich mir immer noch nicht den Tod meines Vaters und Girolamos verzeihen, meine Geliebten und für mich die besten Menschen der Welt ... Werde ich sie jemals rächen können? ... Hat nicht jeder Recht, wenn sie sagen, dass Caraffa nicht besiegt werden kann? Dass ich es nicht zerstören werde, sondern einfach selbst dumm sterbe?... Hatte der Norden wirklich recht, als er mich einlud, nach Meteora zu gehen? Und lebte die Hoffnung, den Papst zu vernichten, die ganze Zeit nur in mir allein?! ..
Und noch etwas ... Ich fühlte mich sehr müde ... Unmenschlich, schrecklich müde ... Manchmal schien es sogar - wäre es nicht wirklich besser, nach Meteora zu gehen? ... Immerhin ging jemand dorthin? .. Und warum es ihnen egal war, dass Menschen um sie herum starben. Es war ihnen wichtig zu LERNEN, das geheime WISSEN zu erhalten, da sie sich für außergewöhnlich begabt hielten ... Aber andererseits, wenn sie wirklich so „außergewöhnlich“ waren, wie konnten sie dann das Einfachste vergessen, aber in meinem Meiner Meinung nach ist unser Gebot sehr wichtig - ruhen Sie sich nicht aus, während andere Ihre Hilfe brauchen ... Wie konnten sie sich so leicht verschließen, ohne sich umzusehen, ohne zu versuchen, anderen zu helfen? .. Wie haben sie ihre Seelen beruhigt? ..

Die häufigste Ursache für Probleme mit der INI-Dateierweiterung ist einfach das Fehlen geeigneter Anwendungen, die auf Ihrem Computer installiert sind. In diesem Fall reicht es aus, eine Anwendung zu finden, herunterzuladen und zu installieren, die INI-Dateien unterstützt - solche Programme sind unten verfügbar.

Suchmaschine

Dateierweiterung eingeben

Hilfe

Hinweis

Bitte beachten Sie, dass einige verschlüsselte Daten aus Dateien, die unser Computer nicht lesen kann, manchmal in Notepad angezeigt werden können. Auf diese Weise werden wir Textfragmente oder Zahlen auslesen - Es lohnt sich zu prüfen, ob diese Methode auch bei INI-Dateien funktioniert.

Was tun, wenn die Anwendung aus der Liste bereits installiert wurde?

Häufig sollte eine installierte Anwendung automatisch mit einer INI-Datei verknüpft werden. Wenn dies nicht geschehen ist, kann die INI-Datei manuell mit der neu installierten Anwendung manuell verknüpft werden. Klicken Sie einfach mit der rechten Maustaste auf die INI-Datei und wählen Sie dann aus der verfügbaren Liste die Option „Standardprogramm auswählen“. Dann müssen Sie die Option "Durchsuchen" auswählen und Ihre bevorzugte Anwendung finden. Vorgenommene Änderungen müssen mit der Option „OK“ bestätigt werden.

Programme, die die INI-Datei öffnen

Fenster
Mac OS
Linux

Warum kann ich die INI-Datei nicht öffnen?

Probleme mit INI-Dateien können auch andere Ursachen haben. Manchmal wird das Problem sogar durch die Installation von Software, die INI-Dateien unterstützt, auf Ihrem Computer nicht gelöst. Der Grund für die Unmöglichkeit des Öffnens sowie des Arbeitens mit der INI-Datei kann auch sein:

Inkonsistente INI-Dateiverknüpfungen in Registrierungseinträgen
- Beschädigung der INI-Datei, die wir öffnen
- Infektion der INI-Datei (Viren)
- zu kleine Computerressource
- veraltete Treiber
- Entfernen der INI-Erweiterung aus der Registrierung des Windows-Systems
- unvollständige Installation eines Programms, das die INI-Erweiterung unterstützt

Die Behebung dieser Probleme sollte zum freien Öffnen und Arbeiten mit INI-Dateien führen. Falls der Computer immer noch Dateiprobleme hat, müssen Sie die Hilfe eines Experten in Anspruch nehmen, der die genaue Ursache ermittelt.

Mein Computer zeigt keine Dateierweiterungen an, was soll ich tun?

In den Standardinstallationen des Windows-Systems sieht der Computerbenutzer die Dateierweiterung INI nicht. Dies kann in den Einstellungen erfolgreich geändert werden. Gehen Sie einfach zur „Systemsteuerung“ und wählen Sie „Ansicht und Personalisierung“. Dann müssen Sie die "Ordneroptionen" eingeben und die "Ansicht" öffnen. Auf der Registerkarte "Ansicht" gibt es eine Option "Erweiterungen bekannter Dateitypen ausblenden" - Sie müssen diese Option auswählen und den Vorgang durch Drücken der Schaltfläche "OK" bestätigen. An dieser Stelle sollten alle Dateierweiterungen, einschließlich INI, nach Dateinamen sortiert angezeigt werden.

ini tialization-Datei ist eine Konfigurationsdatei, die Einstellungsdaten für Microsoft Windows, Windows NT und einige Anwendungen enthält.

Erschien von den allerersten Versionen von Windows. In Windows Version 1.01 war dies nur die Datei WIN.INI. Windows 3.0 fügte die Datei SYSTEM.INI hinzu. Und dann begann ihre Zahl schnell und unkontrolliert zu wachsen.

Es gibt keine detaillierte offizielle Formatspezifikation. Beginnend mit Windows 95 gelten INI-Dateien als veraltet und Microsoft schlägt vor, die Registrierung als Ersatz zu verwenden. Dennoch werden INI-Dateien weiterhin sowohl von Anwendungen anderer Hersteller als auch von Betriebssystemkomponenten von Microsoft verwendet. Beispielsweise wird die Datei boot.ini in Windows NT4/2000/XP beim Booten verwendet, um aus mehreren Betriebssystemen auszuwählen.

Obwohl INI-Dateien unter Windows an Popularität gewonnen haben, können sie auf jedem Betriebssystem verwendet werden. Die einfache Struktur dieses Formats macht es einfach, sie programmgesteuert zu verarbeiten, und hat eine ausreichend klare Form für das menschliche Lesen und Bearbeiten. Es gibt Texteditoren (wie SciTE oder Notepad++), die Syntaxhervorhebung und -faltung für dieses Format verwenden, wodurch es einfacher wird, INI-Dateien von Hand zu bearbeiten.

Die Verwendung von Abschnitten zum Trennen von Parametern hilft beim Organisieren von Daten. Zum Speichern großer Einstellungen mit einer komplexeren hierarchischen Struktur ist das XML- oder JSON-Format jedoch besser geeignet.

Datei Format

ini-Dateien sind einfache Textdateien, die mit jedem Texteditor bearbeitet und angezeigt werden können. ini-Dateien haben folgendes Format:

; irgendein Kommentar # Kommentar im Unix-Stil ; Abschnitt Kommentar var1 = wert_1 ; manchmal ist ein Kommentar zu einem einzelnen Parameter erlaubt var2 = Wert_2 var1 = Wert_1 var2 = Wert_2 ; manchmal ist es erlaubt, mehrere Werte durch Kommas getrennt aufzulisten var1 = Wert_1_1, Wert_1_2, Wert_1_3 var2 = wert_2 ; im Zend Framework wird ein Array folgendermaßen definiert var1 = Wert_1_1 var1 = Wert_1_2 var1 = Wert_1_3 var2 = Wert_2 ; Manchmal gibt es keine Werte Mode=Vid=FolderType=Generisch

INI-Datei kann Folgendes enthalten:

  • leere Zeilen ;