Difference between revisions of "Using INI Files/de"

From Lazarus wiki
Jump to navigationJump to search
m
Line 34: Line 34:
  
 
Var
 
Var
  INI:TINIFile;
+
  INI:                 TINIFile;
  Author,Pass,DBFile:String;
+
  Author, Pass, DBFile: String;
  PassEnter:String;
+
  PassEnter:           String;
  
 
begin
 
begin
   INI := TINIFile.Create('C:\DB.ini');
+
   INI   := TINIFile.Create('C:\DB.ini');
   Author := INI.ReadString('INIDB','Author','');
+
   Author := INI.ReadString('INIDB', 'Author', '');
   Pass := INI.ReadString('INIDB','Pass','');
+
   Pass   := INI.ReadString('INIDB', 'Pass', '');
   DBFile := INI.ReadString('INIDB','DBFile','');
+
   DBFile := INI.ReadString('INIDB', 'DBFile', '');
   if Pass <> '' then
+
   if Pass <> '' then begin
  begin
 
 
     Writeln('Password Required');
 
     Writeln('Password Required');
 
     Repeat
 
     Repeat
 
       Readln(PassEnter);
 
       Readln(PassEnter);
       if not PassEnter = Pass then Writeln('Wrong Password');
+
       if PassEnter <> Pass then Writeln('Wrong Password !');
     until(PassEnter = Pass);
+
     until PassEnter = Pass;
 
     Writeln('Correct Password');
 
     Writeln('Correct Password');
 
   end;
 
   end;
   Writeln('Author : '+Author);
+
   Writeln('Author:   ' + Author);
   Writeln('File : '+DBFile);
+
   Writeln('File:     ' + DBFile);
   Writeln('Password : '+Pass);
+
   Writeln('Password: ' + Pass);
 
   Readln;
 
   Readln;
 
end.     
 
end.     

Revision as of 15:41, 17 June 2018

العربية (ar) Deutsch (de) English (en) español (es) suomi (fi) français (fr) polski (pl) русский (ru) 中文(中国大陆)‎ (zh_CN)

Zurück zu den Zusätzlichen Informationen.


INI-Dateien

Basisinformation

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.

INI-Dateien

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.

Beispiel für das Lesen einer INI-Datei

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:

Author=Adam
Pass=
DBFile=C:\Money.dat

Nun kommen wir zum Code..

Program Project1;

{$mode objfpc}{$H+}

Uses
  Classes,SysUtils,INIFiles;

Var
 INI:                  TINIFile;
 Author, Pass, DBFile: String;
 PassEnter:            String;

begin
  INI    := TINIFile.Create('C:\DB.ini');
  Author := INI.ReadString('INIDB', 'Author', '');
  Pass   := INI.ReadString('INIDB', 'Pass', '');
  DBFile := INI.ReadString('INIDB', 'DBFile', '');
  if Pass <> '' then begin
    Writeln('Password Required');
    Repeat
      Readln(PassEnter);
      if PassEnter <> Pass then Writeln('Wrong Password !');
    until PassEnter = Pass;
    Writeln('Correct Password');
  end;
  Writeln('Author:   ' + Author);
  Writeln('File:     ' + DBFile);
  Writeln('Password: ' + Pass);
  Readln;
end.

Wichtige Objekte

In der Klasse TINIFile gibt es viele verschiedene Eigenschaften, Prozeduren und Funktionen.

CaseSensitive - diese Eigenschaft legt fest, ob Schlüssel und Sektionen die Groß-/Kleinschreibung berücksichtigen, laut Vorgabe nicht.

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.

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.

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)

DeleteKey - entfernt einen existierenden Schlüssel aus einer angegebenen Sektion.

EraseSection - entfernt eine Sektion und alle ihre Daten.

Es gibt noch weitere Prozeduren und Funktionen, aber diese reichen für den Anfang aus.

Referenzdokumentation

Hier: Free Pascal Dokumentation über INI-Dateien

Siehe auch