Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   Delphi Ini Tutorial © Toenn (https://www.delphipraxis.net/24990-ini-tutorial-%A9-toenn.html)

Toenn 29. Jun 2004 13:52


Ini Tutorial © Toenn
 
Hi,
dies ist mein erstes Tutorial und ich hoffe, dass es leicht verständlich ist.

1. Was sind INI's
2. Welche Vorteile haben INI's
3. Wie kann ich Einstellungen in INI's speichern
4. Wie kann ich Einstellungen aus INI's lesen

_______________________

Was sind INI's ?
INI's sind Dateien, um viele Einstellungen in einer Datei zu speichern.

Welche Vorteile haben INI's ?
-Können viele Einstellungen speichern
-Sind übersichtlich
-Viel mehr :D

Welche Nachteile haben INI's ?
-Haben laut S2B nur eine begrenzte Größe
-Können bei sehr vielen Einstellungen langsam werden

Wie kann ich Einstellungen in INI's speichern?
Das kommt ganz darauf an, was man speichern will.
Wenn wir die Position Left und Top von einer Form speichern wollen, müssen wir den Befehl WriteInteger verwenden.
Das geht so (In die Uses-Klausel muss IniFiles eingefügt werden):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
 begin
  //TIniFile wird geladen
  with TIniFile.Create(ExtractFilePath(ParamStr(0)) +  'data.ini') do
   try
    //Top wird geschrieben, Left wird geschrieben
    WriteInteger('Position', 'TOP', Form1.Top);
    WriteInteger('Position', 'Left', Form1.Left);
   finally
    //Ini wird freigegeben
    Free;
  end;
end;
Ein Edit kann man so schreiben:
Delphi-Quellcode:
WriteString('Text', 'Edit1', Edit1.Text);
Wie kann ich das ganze jetzt wieder laden?
Das geht fast genauso:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
 begin
  //TIniFile wird geladen
  with TIniFile.Create(ExtractFilePath(ParamStr(0)) +  'data.ini') do
   try
    //Top wird geladen, Left wird geladen
    Form1.Top := ReadInteger('Position', 'TOP', 0);
    Form1.Left := ReadInteger('Position', 'Left', 0);
   finally
    //Ini wird freigegeben
    Free;
  end;
end;
Das Editfeld laden geht so:
Delphi-Quellcode:
Edit1.Text := ReadString('Text', 'Edit1', '');

Das wars für heute.
Morgen oder Übermorgen gibts die Fortsetzung wie man z.B. speichern kann ob die Checkbox gecheckt ist.

Ultimator 29. Jun 2004 13:58

Re: Ini Tutorial © Toenn
 
:thuimb:

Endlich konnte ich mein Ini-File-Wissen wieder auffrischen, nachdem ich 3 Monate nix mehr damit gemacht hatte :-)

Ääh, und was du dringend ausbessern solltest: Schreib oben nicht "Letztes Wort" sondern besser "Nachwort" oder sowas. :wink:

MasterC 29. Jun 2004 16:49

Re: Ini Tutorial © Toenn
 
Ich selber habe mal versucht KeyWords für Compiler und Compiler Informationen in einer Ini Datei zu speichern. Ich habe viel Zeit damit verbracht um Stringlisten nicht mit Komma in einen String zu verwandeln, sondern mit einem "|". Das Komma hatten die KeyWords selber, darum konnte ich kein Komma verwenden. Als ich dann gemerkt habe, das man nur bestimmt lange Strings in Ini's speichern kann, wurde mir klar, dass die ganzen Funktionen umsonst waren. :mrgreen: Moral der Geschichte: Speichere nie lange Strings in Ini's. :warn:

Toenn 29. Jun 2004 18:50

Re: Ini Tutorial © Toenn
 
Liste der Anhänge anzeigen (Anzahl: 1)
Und weiter gehts.

5. Wie kann ich denn jetzt speichern, ob eine Checkbox gecheckt ist?


5. Boolean

Das geht ganz einfach, mit der Funktion WriteBool und ReadBool:
Delphi-Quellcode:
...
begin
 with TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'data.ini') do
  try
   WriteBool('Data', 'Checkbox1', CheckBox1.Checked);
  finally
   Free;
  end;
end;
Laden kann man das ganze so:
Delphi-Quellcode:
...
begin
 with TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'data.ini') do
  try
   CheckBox1.Checked := ReadBool('Data', 'Checkbox1', False);
  finally
   Free;
  end;
end;
Dazu gibts auch noch eine Demoanwendung im Anhang.
So viel Spaß. Bald gibts dann noch wie man Sections löscht, das Datum und die Uhrzeit in INI's speichert.

Bis Später

Nicodius 30. Jun 2004 05:34

Re: Ini Tutorial © Toenn
 
ja das tut ist wirklich gut :thuimb: :thuimb:

TeronG 10. Aug 2004 12:29

Re: Ini Tutorial © Toenn
 
Ohh .. nett :)

So habe ich über INI's erfahren :-D


EDIT:Url korrigiert

S2B 10. Aug 2004 12:33

Re: Ini Tutorial © Toenn
 
Und ich hab so die ini-Dateien zu schätzen gelernt! :wink:

BullsEye 23. Nov 2007 20:51

Re: Ini Tutorial © Toenn
 
Ich brauchte es für ein Projekt und da hat es mir nen Kumpel empfohlen.. und eig bin ich nur durch dies Tutorial richtig schlau geworden und es funzt alles wie gewünscht...

ALSO: DANKE DANKE DANKE für das Tutorial ;) :angel:

Rakshasa 23. Nov 2007 21:13

Re: Ini Tutorial © Toenn
 
Gaaanz wichtig: Einen Abschnitt zu TMemIniFile erstellen!! :) Ist gerade beim Speichern größerer Datenmengen der herkömlichen TIniFile weit überlegen.

Muetze1 23. Nov 2007 23:10

Re: Ini Tutorial © Toenn
 
Ich hätte ein paar Anmerkungen:

1. Verwende in dem Code bitte nicht die Form1 Variable. Einfach samt dem Punkt weglassen, schliesslich befindest du dich in einer Methode. Der Code würde nie mit mehr als einer TForm1 Instanz funktionieren.
2. Bitte den Code ordentlich einrücken bzw. formatieren. Die jetzige Codeformatierung suggeriert einem, dass das "End" zum "With" gehört, was nicht der Fall ist. Das End gehört zum try/finally und with do ist ohne Blockdefinition genutzt (also nur für die nächste Anweisung gültig, und das ist hier das komplette try/finally/end Konstrukt).
3. Erwähne nochmal wo die INI abgelegt wird, wenn man keinen absoluten Pfad angibt sondern nur einen Dateinamen. Dies ist eine häufige Fehlerursache und kann durch das Tutorial auch gleich mal mit behandelt werden.

Ansonsten eine schön einfache Darstellung bzw. Beschreibung zur INI.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:08 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf