Entwickler-Ecke

Dateizugriff - InI schreiben bzw lesen


DeepRed92 - Mo 29.12.08 17:00
Titel: InI schreiben bzw lesen
Hallo,

ich bin neu hier im Forum und versuche erst seit einer Woche mit Delphi zu Programmiern.
Jetzt zu meiner Frage. Wie kann ich ganz einfach eine InI schreiben bzw. ausleses?


jakobwenzel - Mo 29.12.08 17:02

Guckst du hier [http://www.delphi-treff.de/tutorials/datenspeicherung/ini-dateien/].


DeepRed92 - Mo 29.12.08 17:07

Hey Danke. Noch eine kleine Frage. Also ich habe z.b eine Gui mit einer Checkbox. Dieser Checkbox muss z.b angekreuzt sein. Wo muss ich den Code einfügen, damit es automatisch diesen Befhel durchführt?


jakobwenzel - Mo 29.12.08 17:11

Automatisch beim Programmstart ausgeführt wird zum Beispiel das Ereignis OnCreate deines Formulars.

Achtung: Formulare können durchaus mehrfach erzeugt werden, wodurch das dann auch mehrmals aufgerufen werden würde, aber ich glaube nicht, dass du das momentan machst. :wink:


DeepRed92 - Mo 29.12.08 17:16

Jetzt habe ich mal die INI Funktion benutzt aber irgendwie funktioniert es nicht.

Hier ein Screenshot:

Moderiert von user profile iconNarses: Bild als Anhang hochgeladen


Bob Murphy - Mo 29.12.08 17:18

Hast dir schon alles in den Link von: "jakobwenzel" durchgelesen?
Weil dann müsste es eigentlich klar sein wo dein Fehler ist;)


DeepRed92 - Mo 29.12.08 17:21

Klar hab ich es gelesen :)

Habe das hier vergessen:


Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var ini: TIniFile;
begin
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
    'einstellungen.ini');


---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Aber jetzt kommt das hier:

Moderiert von user profile iconNarses: Bild als Anhang hochgeladen


jakobwenzel - Mo 29.12.08 17:23

Hier [http://www.delphi-treff.de/tutorials/datenspeicherung/ini-dateien/page/3/] der erste Satz :wink:


DeepRed92 - Mo 29.12.08 17:27

Ich verstehe jetzt aber nicht ganz was mit "uses-Klausel" gemeint ist. :shock:


jakobwenzel - Mo 29.12.08 17:29

Ganz oben in deiner Unit steht sowas:

Delphi-Quelltext
1:
2:
3:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, {...};

Und da muss IniFiles dazu:

Delphi-Quelltext
1:
2:
3:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, {...},IniFiles;


DeepRed92 - Mo 29.12.08 17:44

Danke es funktioniert jetzt :)


Timosch - Mo 29.12.08 18:45

Und evtl. solltest du dir mal ein Grundlagen-Tutorial anschauen.


JayEff - Mo 29.12.08 19:09

user profile iconTimosch hat folgendes geschrieben Zum zitierten Posting springen:
Und evtl. solltest du dir mal ein Grundlagen-Tutorial anschauen.
Ja, vielleicht sogar DAS Grundlagentutorial von unserem werten Moderator Christian S. : der sagenumwobene Delphi Crashkurs [http://www.christian-stelzmann.de/artikel/crashkurs.htm] :flehan:

An sonsten, :welcome: im Delphi-Forum! :zustimm:


Chemiker - Mo 29.12.08 19:53

Hallo,

allerdings sollte man mit ExtractFilePath vorsichtig umgehen, weil die Routine nur dann funktioniert, wenn nicht mit einem eingeschränkten Benutzerkonto arbeitet.

Bis bald Chemiker


Xentar - Mo 29.12.08 19:55

user profile iconChemiker hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,
allerdings sollte man mit ExtractFilePath vorsichtig umgehen, weil die Routine nur dann funktioniert, wenn nicht mit einem eingeschränkten Benutzerkonto arbeitet.
Bis bald Chemiker

Die Routine funktioniert dann auch - es kann aber sein, dass man im Programmverzeichnis keine Schreibrechte hat.


Chemiker - Mo 29.12.08 20:05

Hallo Xentar,

darauf wollte ich hinweisen.
Besser Aufgehoben sind die Ini-Dateien im CSIDL_APPDATA Ordner.

Bis bald Chemiker


JayEff - Mo 29.12.08 20:11

user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
Die Routine funktioniert dann auch - es kann aber sein, dass man im Programmverzeichnis keine Schreibrechte hat.
Wesshalb man zum Speichern von Einstellungen etc. das Anwendungsdatenverzeichis benutzt. Ob das existiert findet man über die Windowsverison heraus.
Chemiker hat die Konstante schon erwähnt, wie man die einsetzt steht z.B. hier: http://www.delphi-forum.de/viewtopic.php?p=419391#419391
Wenn du grad ne Minute wartest editier ich den letzten Beitrag nochmal so dass alle nötigen Funktionen direkt dort verlinkt oder gepostet sind (wie z.B. GetSpecialFolder).