![]() |
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:
mein "hauptproblem" ist es, dass mich delphi, wenn ich das compilieren will mit fehlermeldungen wie zB:
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; Zitat:
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^^ |
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! |
Re: Problem mit ini dateien
Mach mal statt
Zitat:
Delphi-Quellcode:
Mach ich auch ständig noch falsch.
prodl := TIniFile.Create('produktliste.ini');
PS: Da war KEIN roter Kasten, ehrlich! |
Re: Problem mit ini dateien
Eine gescheite Codeformatierung ist die halbe Miete:
Delphi-Quellcode:
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:
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;
Delphi-Quellcode:
prodl := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'produktliste.ini');
|
Re: Problem mit ini dateien
Woriin besteht der Unterschied zwischen dem :
Delphi-Quellcode:
und dem :
prodl := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'produktliste.ini');
Delphi-Quellcode:
:gruebel:
prodl := TIniFile.Create('produktliste.ini');
|
Re: Problem mit ini dateien
Zitat:
![]() |
Re: Problem mit ini dateien
Beim oberen wird ein absoluter Pfad angegeben, beim unteren ein relativer :stupid:
|
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:
|
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:
|
Re: Problem mit ini dateien
Zitat:
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. |
Re: Problem mit ini dateien
Geh mal ins Dos, also Eingabeaufforderung. Du wirst wohl irgendwo bei \windows\dokumente und einstellungen stehen. Dann gib 2,3 mal CD .. (oder ausgeschrieben ChDir ..) ein und gucke. :mrgreen: Den Befehl gibts 1:1 umgesetzt auch in Delphi.
Habe jetzt mal im Programm geguckt. Bei mir steht auch drin : ParamStr usw. Wäre vielleicht einer so nett und überlegt sich ein konkretes Beispiel, wie ich mein Windows, Programm oder sonstwas so verbiegen / falsch starten usw. muß, so daß der Unterschied zu einem Fehler führt ? :shock: |
Re: Problem mit ini dateien
Ich kenne mich mit DOS aus und cd kenne ich auch, wie wohl die meisten hier. :roll: Aber es geht hier nicht um DOS und wie du siehst, gibt es ChDir als Funktion (vllt auch CD(), aber das ist hier Jacke wie Hose).
|
Re: Problem mit ini dateien
Zitat:
|
Re: Problem mit ini dateien
Zitat:
![]() Zitat:
|
Re: Problem mit ini dateien
1. Hatte TIniFile nicht sogar die Besonderheit die INI im Windows Ordner anzulegen, wenn nur ein Dateiname ohne Pfadangabe (egal ob relativ oder absolut) angegeben wurde?
2. Zitat:
Du legst dir eine Verknüpfung auf die EXE deines Programmes an und legst als Arbeitsverzeichnis ein anderes fest. Möglichkeit 2: In der Konsole gehst du in das Verzeichnis wo deine EXE liegt. Dann wechselst du auf ein anderes Laufwerk und startest von dort dein Programm mit Laufwerksbuchstabe:EXE Name. Zitat:
Zitat:
Leg deine EXE in den Suchpfad ab oder füge das EXE Verzeichnis dem Suchpfad hinzu und tippe an einer anderen Stelle einfach den Namen der EXE ein um das Programm zu starten. |
Re: Problem mit ini dateien
Hi
Lass doch mal den
Delphi-Quellcode:
Konstruktoraufruf weg. Lag bei mir auch schon mal daran
Free
Tumm |
Re: Problem mit ini dateien
Wo soll er den weglassen?
|
Re: Problem mit ini dateien
Zitat:
Delphi-Quellcode:
dann auch zum Schluss (also nachdem alles in die INI geschrieben wurde bzw aus derselbigen gelesen wurde) auf jeden Fall
prodl := TIniFile.Create('produktliste.ini');
Delphi-Quellcode:
prodl.Free;
Zitat:
:gruebel: Ist eigentlich die Ausgangsfrage bzw das Problem nun gelöst oder etwa doch? :gruebel: |
Re: Problem mit ini dateien
Zitat:
|
Re: Problem mit ini dateien
Moin Rainer,
Zitat:
Voraussetzung: Die Datei existiert dort noch nicht, und man schreibt etwas hinein. Die Write-Methoden von TIniFile nutzen die entsprechenden API-Funktionen (z.B. ![]() [EDIT] @Luckie: Zitat:
[/EDIT] |
Re: Problem mit ini dateien
OK, inhaltlich ist er falsch. Aber mir kam es mehr auf die unklare Formulierung an.
|
Re: Problem mit ini dateien
Zitat:
Habe mich durch das Schreiben/Anlegen eines 'normalen' TextFiles in die Irre führen lassen... Von daher nochmals sorry für meine falsche Aussage :pale: |
Re: Problem mit ini dateien
also schon mal danke für die antworten, mein project startet jetzt wieder und die ini-datei wird auch angelegt.
Aber eine sache wäre da noch, in der ini-datei steht nich der wert der variable (ein sting), sondern 0. Woran könnte das denn liegen? |
Re: Problem mit ini dateien
Wer soll denn darauf irgendwie antworten ? Am Anfang sind ein paar Zeilen zu sehen und jetzt gar nichts mehr. 8) Ist der strukturiertere Source von Luckie wenigstens schon eingebaut ? Egal, ob mit ParamStr usw. oder eben nicht. Nach Änderungen sollte immer der neueste Source gepostet werden, sonst wird das nichts.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz