Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wo liegt der Fehler bei meiner Ini-Datei? (https://www.delphipraxis.net/4951-wo-liegt-der-fehler-bei-meiner-ini-datei.html)

Feldschlösschen 18. Mai 2003 11:02


Wo liegt der Fehler bei meiner Ini-Datei?
 
Hallo!
Ich habe hier mal meinen programm code:
Delphi-Quellcode:
procedure TFrage.FileSaveAs1Accept(Sender: TObject);
begin
cl:=TIniFile.create(frage.FileSaveAs1.Dialog.FileName+'.ini');
try
  cl.WriteString('kopf','code',code);
  cl.WriteString('kopf','Geschlecht',geschl);
  cl.WriteString('kopf','Schule',schule);
finally
  cl.Free;
end;
end;

procedure TFrage.FileOpen1Accept(Sender: TObject);
begin
cl.Create(frage.FileOpen1.Dialog.FileName);
try
  code:=cl.ReadString('kopf','code','Fehler aufgetreten');
  geschl:=cl.ReadString('kopf','Geschlecht','Fehler aufgetreten');
  schule:=cl.ReadString('kopf','Schule','Fehler aufgetreten');
finally
  cl.Free;
end;
Wenn ich das dann in meinem Programm ausführe, kann ich das speichern, die Ini Datei wird angelegt, und es steht auch alles drin, wenn ich danach aber wieder auf öffnen gehe, kommt ein Feher, ich glaub Zugriffsverletzung oder so?

Kann mir jemand sagen, wo der Fehler liegt?
Und habt ihr noch nen tip, wie ich in dem Speichern Fenster das Dateiformat vorgeben kann?

Danke
Gruß Robi

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]

LoL 18. Mai 2003 11:08

das kommt darauf an wozu du die datei öffenen willst:
zum anhängen von dateien oder zum lesen, je nach dem brauchst du einen anderen befehl!

Daniel B 18. Mai 2003 11:08

Hallo,

mach doch beim LAden, vor dem letzten end; noch eins hin, das wäre fürs try..finally.
Ausserdem wäre es besser statt cl.Free;, FreeAndNil(cl); zu nehmen, in beiden Prozeduren.

Grüsse, Daniel :hi:

Feldschlösschen 18. Mai 2003 11:20

Wie zum Anhängen oder Lesen?
 
Erstmal danke für die schnelle Antwort!

Also um es noch mal ganz genau zu beschreiben,
ich habe ein Programm, bei dem ich verschiedene Werte speichern will, allerdings jedesmal in eine andere Datei. Später, will ich dann eine von den erstellten Datei wieder öffnen, die Werte in einem Fenster anzeigen lassen und mit den Werten weiterarbeiten.

Ist das überhaupt mit der Read anweisung machbar?
Und nochmal, den Dateityp im Speichern-Unter-Fenstern, wo kann ich den denn festlegen?

Danke Gruß Robi

P.S.: das letzte end hatte ich nur vergessen zu kopieren.

Alexander 18. Mai 2003 11:22

Du meinst den Dialog Speichern unter, oder?
Dann kuck dir mal das Property Filter an

Christian Seehase 18. Mai 2003 13:28

Moin Robi,

beim auslesen der Datei wird das Objekt nicht erzeugt:

Delphi-Quellcode:
// Schreiben
// Richtig. Hier wird einer Objektvariablen (vom Typ TIniFile oder einer Ableitung davon)
// das erzeugte Objekt übergeben
cl:=TIniFile.create(frage.FileSaveAs1.Dialog.FileName+'.ini');

// Lesen
// Falsch. Hier versuchst Du die Create Methode eines Objektes aufzurufen, auf das die Variable cl verweist
// Da diese wohl vom richtigen Typ ist hat der Compiler auch nichts dageben, aber zur Laufzeit
// ist dort nichts und der Zugriff ereugt die Exception
cl.Create(frage.FileOpen1.Dialog.FileName);


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 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