1. Es ist notwendig, die Struktur der INI-Datei zu verstehen:
;Kommentar
[Abschnittsname]
Schlüsselwort=Wert
...
In INI-Dateien sind mehrere Abschnitte zulässig, und auf jeden Abschnitt folgt der Wert des Schlüsselworts.
Es gibt drei Arten von Werten: Zeichenfolgen, ganzzahlige Werte und boolesche Werte. Die Zeichenfolge wird in der INI-Datei ohne Anführungszeichen gespeichert, der boolesche wahre Wert wird durch 1 dargestellt und der boolesche falsche Wert wird durch 0 dargestellt.
Kommentare beginnen mit einem Semikolon „;“.
2. Definition
1. Fügen Sie IniFiles im Abschnitt „Uses“ der Schnittstelle hinzu;
2. Fügen Sie eine Zeile zum Abschnitt „Var-Variablendefinition“ hinzu:
myinifile:Tinifile;
Anschließend können Sie die Variable myinifile erstellen, öffnen, lesen, schreiben und andere Vorgänge ausführen.
3. Öffnen Sie die INI-Datei
myinifile:=Tinifile.create('program.ini');
Die obige Anweisungszeile stellt eine Verbindung zwischen der Variablen myinifile und der spezifischen Datei program.ini her. Anschließend kann der Wert der Schlüsselwörter in der Datei program.ini über die Variable myinifile gelesen und geschrieben werden.
Es ist zu beachten, dass die Datei Program.ini im Windows-Verzeichnis gespeichert wird, wenn der Dateiname in Klammern keinen Pfad angibt. Geben Sie die Methode zum Speichern der Datei Program.ini im aktuellen Verzeichnis der Anwendung an ein vollständiger Pfad und Dateiname. Die folgenden zwei Anweisungen können diese Funktion ausführen
fähig:
Dateiname:=ExtractFilePath(Paramstr(0))+'program.ini';
myinifile:=Tinifile.Create(filename);
4. Lesen Sie den Wert des Schlüsselworts
Für die drei von INI-Dateien unterstützten Datentypen Zeichenfolgen, ganzzahlige Werte und boolesche Werte stellt die Klasse TINIfiles drei verschiedene Objektmethoden zum Lesen der Werte von Schlüsselwörtern in INI-Dateien bereit.
Nehmen Sie an, dass die definierten Variablen vs, vi und vb vom Typ String, Integer bzw. Boolean sind.
vs:=myinifile.Readstring('Abschnittsname','Schlüsselwort',Standardwert);
vi:=myinifile.Readinteger('Abschnittsname','Schlüsselwort',Standardwert);
vb:=myinifile.Readbool('Abschnittsname','Schlüsselwort',Standardwert);
Der Standardwert ist der Standardwert, der zurückgegeben wird, wenn das Schlüsselwort nicht in der INI-Datei vorhanden ist.
5. INI-Datei schreiben
Ebenso stellt die TInifile-Klasse drei verschiedene Objektmethoden zum Schreiben von Schlüsselwörtern vom Typ String, Integer und Boolean in die INI-Datei bereit.
myinifile.writestring('Abschnittsname', 'Schlüsselwort', Variable oder String-Wert);
myinifile.writeinteger('Abschnittsname', 'Schlüsselwort', Variable oder Ganzzahlwert);
myinifile.writebool('Abschnittsname', 'Schlüsselwort', Variable oder Wahr oder Falsch);
Wenn die INI-Datei nicht vorhanden ist, erstellt die obige Anweisung automatisch die INI-Datei.
6. Schlüsselwörter löschen
Zusätzlich zum Hinzufügen eines Schlüsselworts mithilfe der Schreibmethode bietet die Tinifile-Klasse auch eine Objektmethode zum Löschen von Schlüsselwörtern:
myinifile.DeleteKey('Abschnittsname','Schlüsselwort');
7. Abschnittsbetrieb
Das Hinzufügen eines Abschnitts kann mit der Schreibmethode erfolgen, und das Löschen eines Abschnitts kann mit der folgenden Objektmethode erfolgen:
myinifile.EraseSection('Abschnittsname');
Darüber hinaus bietet die Tinifile-Klasse drei Objektmethoden zum Bearbeiten von Abschnitten:
myinifile.readsection('Abschnittsname', TStrings-Variable); kann alle Schlüsselwortnamen im angegebenen Abschnitt in eine String-Listenvariable einlesen;
myinifile.readsections(TStrings-Variable); kann alle Abschnittsnamen in der INI-Datei in eine String-Listenvariable einlesen.
myinifile.readsectionvalues('Abschnittsname', TStrings-Variable); kann alle Zeilen (einschließlich Schlüsselwörter, =, Werte) des angegebenen Abschnitts in der INI-Datei in eine String-Listenvariable einlesen.
8. Veröffentlichung
Geben Sie myinifile am entsprechenden Speicherort mit der folgenden Anweisung frei:
myinifile.distory;
9. Ein Beispiel
Im Folgenden wird anhand eines einfachen Beispiels (wie in der Abbildung gezeigt) die Methode zum Erstellen, Lesen und Speichern von INI-Dateien veranschaulicht. Die Datei myini.ini enthält den Abschnitt „Programmparameter“ und drei Schlüsselwörter: Benutzername (Zeichenfolge), offizieller Benutzerstatus (boolescher Wert) und verstrichene Zeit (ganzzahliger Wert). Das Programm liest diese Daten beim Erstellen des Formulars und schreibt die Datei myini.ini bei der Freigabe des Formulars.
Beigefügte Quellprogrammliste
EinheitEinheit1;
Schnittstelle
verwendet
Windows, Nachrichten, SysUtils, Varianten, Klassen, Grafiken, Steuerelemente, Formulare,
Dialoge, IniFiles, StdCtrls, ExtCtrls;
Typ
TForm1=Klasse(TForm)
Edit1:TEdit;
Edit2:TEdit;
CheckBox1:TCcheckBox;
Timer1:TTimer;
procedureFormCreate(Sender:TObject);
procedureFormDestroy(Sender:TObject);
procedureTimer1Timer(Sender:TObject);
Privat
{Privatedeclarations}
öffentlich
{Öffentliche Erklärungen}
Ende;
var
Form1:TForm1;
myinifile:Tinifile;
Durchführung
{$R*.dfm}
procedureTForm1.FormCreate(Sender:TObject);
var
Dateiname:string;
beginnen
filename:=ExtractFilePath(paramstr(0))+´myini.ini´;
myinifile:=TInifile.Create(filename);
edit1.Text:=myinifile.readstring('Programmparameter','Benutzername','Standardbenutzername');
edit2.text:=inttostr(myinifile.readinteger(´Programmparameter´,´verstrichene Laufzeit´,0));
checkbox1.Checked:=myinifile.readbool(´Programmparameter´,´ob es sich um einen offiziellen Benutzer handelt´,False);
Ende;
procedureTForm1.FormDestroy(Sender:TObject);
beginnen
myinifile.writestring(´Programmparameter´,´Benutzername´,edit1.Text);
myinifile.writeinteger(´Programmparameter´,´verstrichene Laufzeit´,strtoint(edit2.text));
myinifile.writebool(´Programmparameter´, ´Ist es ein offizieller Benutzer´, checkbox1.Checked);
myinifile.Destroy;
Ende;
procedureTForm1.Timer1Timer(Sender:TObject);
beginnen
edit2.Text:=inttostr(strtoint(edit2.text)+1);
Ende;
Ende.
Dieses Beispiel hat das Debuggen unter Delphi6.0+WinXP bestanden.