Sign in Join
Wiki copytemporary

Using INI Files/de: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Using INI Files/de

OldNewLine
1+Zurück zu den [[Additional information/de|Zusätzlichen Informationen]].\
2+
3+==INI-Dateien==
4+
5+### Basisinformation
6+
7+INI-Dateien können benutzt werden, um grundlegende Benutzereinstellungen einfach zu speichern. Mit der Unit **INIfiles** und der Klasse **TINIFile** können Sie ganz einfach mit existierenden INI-Dateien umgehen. Sie finden diese Unit in der FCL.
8+
9+### INI-Dateien
10+
11+INI-Dateien verwenden eckige Klammern um **Sektionen** zu erzeugen und zu kennzeichnen. Diese Sektionen enthalten **Schlüsselworte** und **Werte**. Ein Schlüsselwort und sein zugehöriger Wert werden durch ein Gleichheitszeichen (=) voneinander getrennt (Schlüssel=Wert). Die Namen der Sektionen stehen in eckigen Klammern (\[Section\]). INI-Dateien werden seltener zum Speichern von Zeichenketten verwendet als XML-Dateien, weil die INI-Dateien nicht so gut mit umfangreichen Zeichenketten zurechtkommen.
12+
13+### Beispiel für das Lesen einer INI-Datei
14+
15+Die nachfolgende Konsolenanwendung zeigt Ihnen, wie Sie INI-Dateien lesen können. Um dies auszutesten, sollten Sie zuerst eine INI-Datei namens "C:\DB.ini" erzeugen. Diese enthält eine Sektion names \[INIDB\] und die folgenden Schlüsselworte und Werte:
16+
17+`Author=Adam`\
18+`Pass=`\
19+`DBFile=C:\Money.dat`\
20+
21+Nun kommen wir zum Code..
22+
23+``` pascal
24+Program Project1;
25+
26+{$mode objfpc}{$H+}
27+
28+Uses
29+ Classes, SysUtils, INIFiles;
30+
31+Var
32+ INI: TINIFile;
33+ Author, Pass, DBFile: String;
34+ PassEnter: String;
35+
36+begin
37+ INI := TINIFile.Create('C:\DB.ini');
38+ Author := INI.ReadString('INIDB', 'Author', '');
39+ Pass := INI.ReadString('INIDB', 'Pass', '');
40+ DBFile := INI.ReadString('INIDB', 'DBFile', '');
41+ if Pass <> '' then begin
42+ Writeln('Password Required');
43+ Repeat
44+ Readln(PassEnter);
45+ if PassEnter <> Pass then Writeln('Wrong Password !');
46+ until PassEnter = Pass;
47+ Writeln('Correct Password');
48+ end;
49+ Writeln('Author: ' + Author);
50+ Writeln('File: ' + DBFile);
51+ Writeln('Password: ' + Pass);
52+ Readln;
53+end.
54+```
55+
56+### Wichtige Objekte
57+
58+In der Klasse TINIFile gibt es viele verschiedene Eigenschaften, Prozeduren und Funktionen.
59+
60+**CaseSensitive** - diese Eigenschaft legt fest, ob Schlüssel und Sektionen die Groß-/Kleinschreibung berücksichtigen, laut Vorgabe nicht.
61+
62+**ReadString** - erwartet 3 konstante Parameter. Erstens die zu durchsuchende Sektion. Zweitens das gesuchte Schlüsselwort. Drittens: ein String als Vorgabewert, falls der Schlüssel und/oder die gesuchte Sektion nicht gefunden wird.
63+
64+**WriteString** - erwartet ebenfalls 3 konstante Parameter. Erstens die Sektion. Zweitens der Schlüssel und zuletzt der Wert. Falls Schlüssel und Sektion bereits existieren, wird der Schüssel mit dem neuen Wert überschrieben.
65+
66+**ReadSections** - erlaubt Ihnen, die Sektionen aus einer INI-Datei auszulesen und in ein TStrings-Objekt zu kopieren (oder in eine TStringList mit dem AS Operator)
67+
68+**DeleteKey** - entfernt einen existierenden Schlüssel aus einer angegebenen Sektion.
69+
70+**EraseSection** - entfernt eine Sektion und alle ihre Daten.
71+
72+Es gibt noch weitere Prozeduren und Funktionen, aber diese reichen für den Anfang aus.
73+
74+### Beispiel für ein Form
75+
76+Dieses Beispiel Ladet am Anfang die Position des Forms und beim Beenden, wird diese gespeichert.
77+
78+``` pascal
79+uses
80+ ..., IniFiles;
81+
82+// Koordinaten speichern.
83+
84+procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
85+var
86+ ini: TIniFile;
87+begin
88+ ini := TIniFile.Create('config.ini');
89+ ini.WriteInteger('pos', 'Left', Left);
90+ ini.WriteInteger('pos', 'Width', Width);
91+ ini.WriteInteger('pos', 'Top', Top);
92+ ini.WriteInteger('pos', 'Height', Height);
93+ ini.Free;
94+end;
95+
96+// Koordinaten laden.
97+
98+procedure TForm1.FormCreate(Sender: TObject);
99+var
100+ ini: TIniFile;
101+begin
102+ ini := TIniFile.Create('config.ini');
103+ Left := ini.ReadInteger('pos', 'Left', 100);
104+ Width := ini.ReadInteger('pos', 'Width', 500);
105+ Top := ini.ReadInteger('pos', 'Top', 50);
106+ Height := ini.ReadInteger('pos', 'Height', 400);
107+ ini.Free;
108+end;
109+```
110+
111+### Referenzdokumentation
112+
113+Hier: [Free Pascal Dokumentation über INI-Dateien](http://lazarus-ccr.sourceforge.net/docs/fcl/inifiles/index.html)
114+
115+## Siehe auch
116+
117+- [[XML Tutorial/de|XML Tutorial]]
118+
119+---
120+*From the Free Pascal wiki, page "Using INI Files/de", as it stood on 2020-04-09 after a change by Mathias, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history