AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Ini Tutorial © Toenn
Tutorial durchsuchen
Ansicht
Themen-Optionen

Ini Tutorial © Toenn

Ein Tutorial von Toenn · begonnen am 29. Jun 2004 · letzter Beitrag vom 15. Dez 2007
Antwort Antwort
Seite 1 von 2  1 2      
Toenn
Registriert seit: 4. Okt 2003
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

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:
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:
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.
 
Benutzerbild von Ultimator
Ultimator

 
FreePascal / Lazarus
 
#2
  Alt 29. Jun 2004, 14:58


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.
Julian J. Pracht
  Mit Zitat antworten Zitat
MasterC

 
Delphi 2005 Personal
 
#3
  Alt 29. Jun 2004, 17:49
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. Moral der Geschichte: Speichere nie lange Strings in Ini's.
Christian H.
  Mit Zitat antworten Zitat
Toenn
 
#4
  Alt 29. Jun 2004, 19:50
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
Angehängte Dateien
Dateityp: zip demoapp.zip (213,5 KB, 118x aufgerufen)
  Mit Zitat antworten Zitat
Nicodius

 
Delphi 2006 Architect
 
#5
  Alt 30. Jun 2004, 06:34
ja das tut ist wirklich gut
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

 
Delphi 2007 Professional
 
#6
  Alt 10. Aug 2004, 13:29
Ohh .. nett

So habe ich über INI's erfahren


EDIT:Url korrigiert
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B
 
#7
  Alt 10. Aug 2004, 13:33
Und ich hab so die ini-Dateien zu schätzen gelernt!
Simon Praetorius
  Mit Zitat antworten Zitat
BullsEye

 
Delphi 7 Personal
 
#8
  Alt 23. Nov 2007, 21:51
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
Marc
  Mit Zitat antworten Zitat
Benutzerbild von Rakshasa
Rakshasa

 
Delphi 2007 Professional
 
#9
  Alt 23. Nov 2007, 22:13
Gaaanz wichtig: Einen Abschnitt zu TMemIniFile erstellen!! Ist gerade beim Speichern größerer Datenmengen der herkömlichen TIniFile weit überlegen.
  Mit Zitat antworten Zitat
Muetze1
 
#10
  Alt 24. Nov 2007, 00:10
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz