Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit ini dateien (https://www.delphipraxis.net/80307-problem-mit-ini-dateien.html)

guitar1 6. Nov 2006 21:52


Problem mit ini dateien
 
hi,

ich probier jetzt schon seit stunden alles mögliche (ist bei mir noch nicht so viel :) ), um daten in eine ini-datei zu speicher.
Ich hab hier mal einen teil des quellcodes reingestellt, vllt ist es ja auch nur ein ganz kleiner fehler
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var prodl : TIniFile;
begin

prodl := tinifile.Create('produktliste.ini');

  prodl.WriteString ('cpu', 'name', cpu_amd_name[1] );



prodl.Free;
end;


procedure TForm1.FormShow(Sender: TObject);
var prodl : TIniFile;
begin
  try
    prodl.Create('produktliste.ini');
      cpu_amd_name[1]:= prodl.ReadString('cpu','name','Fehler!');
  finally
    prodl.Free
  end;


end;
mein "hauptproblem" ist es, dass mich delphi, wenn ich das compilieren will mit fehlermeldungen wie zB:
Zitat:

1. Meldung:
Zugriffsverletzung bei Adresse 0040383A in Modul 'Project1.exe'. Lesen von Adresse FFFFFF00.
2. Meldung:
Exception EAccessViolation in Modul Project1.exe bei 00000000. Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000.
3. Meldung:
Exception EAccessViolation in Modul Project1.exe bei 00003AFC. Zugriffsverletzung bei Adresse 00403AFC in Modul 'Project1.exe'. Lesen von Adresse 646F7238.
4. Meldung:
Runtime error 216 at 0045A1AC
bombadiert

schon mal großes DANKE im voraus mfg A. Horn

PS: ich würde ich freuen wenn ihr es einfach erklärt, denn wie gesagt arbeite ich noch nicht so lange mit Delphi (ca. 3 monate)

Edit1: hab die fehlermeldungen vergessen :oops:
Edit2: tippfehler^^

Muetze1 6. Nov 2006 21:58

Re: Problem mit ini dateien
 
Vergleich mal den Aufruf des Constructors (Create) bei den beiden Funktionen die du gepostet hast.

PS: Die Meldungen erscheinen zur Laufzeit, nicht beim compilieren!

gordon freeman 6. Nov 2006 21:59

Re: Problem mit ini dateien
 
Mach mal statt
Zitat:

Zitat von guitar1
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var prodl : TIniFile;
begin
  try
    prodl.Create('produktliste.ini'); //Hier der Fehler
      cpu_amd_name[1]:= prodl.ReadString('cpu','name','Fehler!');
  finally
    prodl.Free
  end;

einfach
Delphi-Quellcode:
prodl := TIniFile.Create('produktliste.ini');
Mach ich auch ständig noch falsch.

PS: Da war KEIN roter Kasten, ehrlich!

Luckie 6. Nov 2006 22:01

Re: Problem mit ini dateien
 
Eine gescheite Codeformatierung ist die halbe Miete:
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
  prodl : TIniFile;
begin
  prodl := TIniFile.Create('produktliste.ini');
  try
    try
      prodl.WriteString ('cpu', 'name', cpu_amd_name[1] );
    except
      on E: Exception do
        ShowMessage(E.Message);
    end;
  finally
    prodl.Free;
  end;
end;
Das mal exemplarisch. Ansonsten sollte dein Code auch schon funktionieren, wenn denn dein Windows in der Lage ist und errät in welchem Verzeichnis, sich die Ini-Datei befindet. Ich gehe mal davon aus, sie soll im Anwendungsverzeichnis liegen. Dann sollte das so aussehen:
Delphi-Quellcode:
prodl := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'produktliste.ini');

Hansa 7. Nov 2006 11:37

Re: Problem mit ini dateien
 
Woriin besteht der Unterschied zwischen dem :

Delphi-Quellcode:
prodl := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'produktliste.ini');
und dem :
Delphi-Quellcode:
prodl := TIniFile.Create('produktliste.ini');
:gruebel:

Matze 7. Nov 2006 11:40

Re: Problem mit ini dateien
 
Zitat:

Zitat von Hansa
Woriin besteht der Unterschied zwischen dem

Zweites legt die datei im Arbeitspfad an, der beispielsweise über den TOpenDialog oder auch über Delphi-Referenz durchsuchenChDir (ich glaube so heißt diese Funktion) geändert werden kann.

Interceptor 7. Nov 2006 11:43

Re: Problem mit ini dateien
 
Beim oberen wird ein absoluter Pfad angegeben, beim unteren ein relativer :stupid:

mkinzler 7. Nov 2006 11:48

Re: Problem mit ini dateien
 
Im Normalfall hat das den geliechen Effekt, da das Arbeitsverzeichnis mit dem Verzeichnis der Exe identisch ist. Wenn nun aber das Arbeitsverzeichnis abweicht (Exe ist mit Dateityp verknüpft, Angabe in Verknüpfung usw) dann nicht mehr. Deshalb ist erstere Lösung besser.

Zitat:

Beim oberen wird ein absoluter Pfad angegeben, beim unteren ein relativer Stupid
Jein es sind eigentlich beide relative Pfade, der erste zum Verzeichnis, in dem die Exeligt und der 2te relative zum Arbeitsverzeichnis.

Hansa 7. Nov 2006 11:49

Re: Problem mit ini dateien
 
Nene. :zwinker: ChDir ist CD und das steht bereits seit Dos für "change directory". Relativ sind beide verwendeten Dateinamen und zwar zum aufrufenden Programm. Dateiname mit absoluter Pfadangabe wäre das : "C:\Windows\Text.ini" :stupid:

Matze 7. Nov 2006 11:54

Re: Problem mit ini dateien
 
Zitat:

Zitat von Hansa
ChDir ist CD und das steht bereits seit Dos für "change directory". Relativ sind beide verwendeten Dateinamen und zwar zum aufrufenden Programm.

Das stimmt nicht, wie mkinzler oder ich schon geschrieben haben. Dazu auch ein Zitat aus der OH:

Delphi-Hilfe:
Syntax
[Delphi] procedure ChDir(const S: string); overload;
[Delphi] procedure ChDir(P: PAnsiChar); overload;

Mit ChDir kann das aktuelle Verzeichnis in den mit S oder P angegebenen Pfad geändert werden. Wenn die Operation fehlschlägt, wird EInOutError ausgelöst.


Oder bin ich da völlig auf dem Holzweg? :gruebel: Aber ich meine schon, dass dies so sei.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 Uhr.
Seite 1 von 3  1 23      

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