Wie arbeite ich INI -Dateien?
INI -Dateien spielen eine wichtige Rolle bei der Speichern und Einstellung von Systemkonfiguration und Anwendungsparameter, sodass visuelle Programmierfamilien wie VB, VC, VFP, Delphi usw. Methoden zum Lesen und Schreiben von INI -Dateien bereitstellen, bei denen INI in Delphi betrieben wird. Dateien sind am einfachsten, da DelPhi3 eine Tinifile -Klasse bietet, mit der wir Ini -Dateien sehr flexibel verarbeiten können.
1. Es ist notwendig, die Struktur der INI -Datei zu verstehen:
;Kommentar
[Abschnittsname]
Keyword = Wert
...
Die INI -Datei ermöglicht mehrere Abschnitte, und jeder Abschnitt ermöglicht mehrere Schlüsselwörter, gefolgt vom Wert des Schlüsselworts.
Es gibt drei Arten von Werten: String, ganzzahliger Wert und Boolescher Wert. Die Zeichenfolge wird in der INI -Datei ohne Zitate gespeichert, der wahre boolesche Wert wird durch 1 dargestellt und der falsche boolesche Wert wird durch 0 dargestellt.
Kommentare beginnen mit einem Semikolon ";".
2. Definition
1. Fügen Sie dem Verwendungsabschnitt der Schnittstelle Inifiles hinzu;
2. Fügen Sie dem VAR -Variablen -Definitionsteil eine Zeile hinzu:
MyInifile: Tinifile;
Dann können Sie erstellen, öffnen, lesen, schreiben und andere Vorgänge auf dem Variablen -MyInifile.
3. Öffnen Sie die INI -Datei
myInifile: = Tinifile.create ('programm.ini');
Die obige Zeilenanweisung stellt eine Verbindung zwischen dem Variablen -MyInifile und dem spezifischen Dateiprogramm.ini her. Anschließend können Sie das Variable MyInifile verwenden, um die Schlüsselwortwerte in die Datei programm.ini zu lesen und zu schreiben.
Wenn der Dateiname in den Klammern den Pfad nicht angibt, wird in der Datei programm.ini -Datei im Windows -Verzeichnis gespeichert, wenn der Dateinamen nicht angegeben ist.
Die Methode zum Speichern der Datei program.ini im aktuellen Verzeichnis der Anwendung besteht darin, den vollständigen Pfad und den Dateinamen dafür anzugeben. Die folgenden zwei Aussagen können diese Funktion ausfüllen:
Dateiname: = ExtractFilePath (Paramstr (0))+'Programm.ini';
4. Lesen Sie den Wert des Schlüsselworts
Für drei von INI -Dateien unterstützte Datentypen: String, ganzzahliger Wert und Boolescher Wert, bietet die TiniFiles -Klasse drei verschiedene Objektmethoden, um die Werte von Schlüsselwörtern in INI -Dateien zu lesen.
Nehmen wir an, dass die definierten Variablen vs, VI und VB String-, Ganzzahl- und Boolesche Typen sind.
vs: = myInifile.readstring ('Abschnittsname', 'Schlüsselwort', Standardwert);
vi: = myInifile.readinteger ('Unterabschnittsname', 'Schlüsselwort', Standardwert);
vb: = myInifile.readbool ('Abschnittsname', 'Schlüsselwort', Standardwert);
Der Standardwert ist der Standardwert, der zurückgegeben wird, wenn das Schlüsselwort in der INI -Datei nicht vorhanden ist.
5. Schreiben Sie an die Ini -Datei
In ähnlicher Weise bietet die Tinifile -Klasse auch drei verschiedene Objektmethoden, das Saiten, Ganzzahl und boolesche Schlüsselwörter in der INI -Datei schreibt.
myInifile.writestring ('Unterabschnittsname', 'Keyword', Variable oder String Value);
myInifile.writeInteger ('Unterabschnittsname', 'Schlüsselwort', Variable oder ganzzahliger Wert);
myInifile.writeBool ('Unterabschnittsname', 'Keyword', Variable oder True oder False);
Wenn diese INI -Datei nicht vorhanden ist, erstellt die obige Anweisung auch automatisch die INI -Datei.
6. Schlüsselwörter löschen
Die Tinifile -Klasse bietet zusätzlich zum Hinzufügen eines Schlüsselworts mit der Schreibmethode auch eine Objektmethode zum Löschen des Schlüsselworts:
myInifile.deleteKey ('Unterabschnittsname', 'Keyword');
7. Abschnitt Betrieb
Das Hinzufügen eines Abschnitts kann durch das Schreiben der Methode erfolgen, und das Löschen eines Abschnitts kann durch die folgende Objektmethode erfolgen:
myInifile.erasesection ('Unterabschnittsname');
Darüber hinaus enthält die Tinifile -Klasse drei Objektmethoden, um in Unterabschnitten zu arbeiten:
myInifile.readSection ('Abschnittsname' TStrings Variable);
myInifile.readsektionen (TStrings -Variable) kann alle Abschnittsnamen in der INI -Datei in eine Zeichenfolgelistenvariable lesen.
myInifile.readSectionValues ('Abschnittsname', TStrings Variable) kann alle Zeilen des angegebenen Abschnitts in der INI -Datei (einschließlich Schlüsselwörter, =, Werte) in eine Zeichenfolgeliste Variable lesen.
8. Release
Veröffentlichen Sie MyInifile mit der folgenden Erklärung an der entsprechenden Stelle:
myInifile.distory;
Neun
Im Folgenden wird ein einfaches Beispiel (wie in der Abbildung gezeigt) verwendet, um die Methode zum Erstellen, Lesen und Speichern von INI -Dateien zu demonstrieren. Die Datei myini.ini enthält die Unterabschnitt "Programmparameter" und drei Schlüsselwörter: Benutzername (Zeichenfolge), ob der offizielle Benutzer (Boolean -Wert) und Laufzeit (Integralwert). Das Programm liest diese Daten in der Formularerstellung und schreibt die Datei myini.ini, wenn das Formular veröffentlicht wird.
Liste der Quellprogramme
Einheit Einheit1;
Schnittstelle
Verwendung
Windows, Nachrichten, Systeme, Klassen, Grafiken, Steuerelemente, Formulare, Dialoge, Inifiles, STDCtrls, Extctrls;
Typ
Tform1 = Klasse (tform)
Edit1: tedit;
CheckBox1: Tcheckbox;
Edit2: tedit;
Label1: Tlabel;
Label2: Tlabel;
Timer1: Timer;
Label3: Tlabel;
procedureFormCreate (Absender: tobject);
procedureFormDestroy (Absender: Tobject);
proceduretimer1Timer (Absender: tobject);
Privat
{PrivatatedEclarations}
öffentlich
{PublicDeclarations}
Ende;
var
Form1: tform1;
Durchführung
var
MyInifile: Tinifile;
{$ R*.dfm}
proceduretForm1.FormCreate (Absender: tobject);
var
Dateiname: String;
Beginnen
Dateiname: = ExtractFilePath (Paramstr (0))+'myini.ini';
MyInifile: = Tinifile.create (Dateiname);
edit1.text: = myInifile.readstring ('Programmparameter', 'Benutzername', 'Standard -Benutzername');
edit2.text: = inttoStr (myInifile.readinteger ('Programmparameter', 'Runded Time', 0));
Checkbox1.Conted: = myInifile.readbool ('Programmparameter', 'ist es offizieller Benutzer', falsch);
Ende;
proceduretForm1.FormDestroy (Absender: Tobject);
Beginnen
myInifile.writestring ('Programmparameter', 'Benutzername', edit1.text);
myInifile.writeInteger ('Programmparameter', "Runned Time", Strtoint (edit2.text));
myInifile.writeBool ("Programmparameter", "ist es offizieller Benutzer", Checkbox1.Conted);
myInifile.destroy;
Ende;
proceduretform1.timer1timer (Absender: tobject);
Beginnen
edit2.text: = inttoStr (strtoint (edit2.text) +1);
Ende;
Ende.