Entwickler-Ecke
Dateizugriff - Fehler beim INI Lesen
Schakal - Mo 05.01.04 20:09
Titel: Fehler beim INI Lesen
kann mir ma wer sagen wo hier der fehler ist, ich seh nämlich keinen
also hier die inifile
Delphi-Quelltext
1: 2:
| [EINSTELLUNGEN] MAKER=C:\Spiele\RpgMaker2003\rpg2003\RPG2003.EXE |
und hier der delphi code
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.laden(Sender: TObject); var ini : TIniFile; begin ini := TIniFile.Create('lister.ini'); maker := Ini.ReadString('EINSTELLUNGEN', 'MAKER', 'Kein Pfad'); Label1.Caption := maker; end; |
label1 zeigt aber immer "kein pfad" an
Delete - Mo 05.01.04 21:35
Wie soll dein Programm die Ini Datei finden, wenn du nir den Dateinamen angibst? Er sucht sie im aktuellen Verzeichnis, welches sich aber geändert haben kann durch einen Aufruf von TOpneDialog under TSaveDialog. Desweiteren lies mal was in der Hilfe steht, wenn du beim Anlegen keinen Pfand angibst, dann landet sie im Windows-Verzeichnis oder so.
Schakal - Mo 05.01.04 21:57
also die prozedur wird bei oncreate der form aufgerufen
und die lister.ini ist in dem selben verzeichnis wie mein programm
selbst wenn ich anstatt
ini := TIniFile.Create('lister.ini');
ini := TIniFile.Create('c:\test\lister.ini');
schreibe kommt trotzdem das selbe
ErnestoChe - Mo 05.01.04 22:20
Hi,
probiers mal so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var ini : TIniFile; begin ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'lister.ini'); try maker := Ini.ReadString('EINSTELLUNGEN', 'MAKER', 'Kein Pfad'); Label1.Caption := maker; finally ini.Free; end; end; |
MFG
- Ernesto -
Delete - Mo 05.01.04 22:29
Was soll´n das "maker" bedeuten, @Ernesto. Wenn´s trotzdem schief geht, wird auch die zusätzliche Variable nichts helfen, weil sie mit "Kein Pfad" gefüllt wird. ;)
ErnestoChe - Mo 05.01.04 22:38
Hi,
maker wird wohl eine String-Variable sein, sonst könnte er nicht kompilieren, mal abgesehen davon, dass sie unnötig ist.
| Zitat: |
| Wenn´s trotzdem schief geht, wird auch die zusätzliche Variable nichts helfen, weil sie mit "Kein Pfad" gefüllt wird. |
Was meinst du? Welche zusätzliche Variable? Ich habe lediglich eine Ermittlung des Programmpfades mit ParamStr eingebaut, da ich denke, dass die Datei nicht gefunden wird. Das try..finally mit Freigabe hat damit nichts zu tun. Hab ich nur dazu geschrieben, weil man das so tun sollte mit lokalen Objekten.
MFG
- Ernesto -
Delete - Di 06.01.04 10:18
| ErnestoChe hat folgendes geschrieben: |
maker wird wohl eine String-Variable sein, sonst könnte er nicht kompilieren, mal abgesehen davon, dass sie unnötig ist.
[...] |
Entschuldigung, mein Fehler. :oops: Du hast natürlich Recht. Ich habe nicht gesehen, dass du den Quellcode von Schakal übernommen hast.
ErnestoChe - Di 06.01.04 12:52
Hi,
ach so. Kein Problem :wink: . Ich hab dich auch missverstanden. Ich dachte die Frage galt Schakal und nur der zweite Teil deines Postings galt mir. Habe den Punkt nach @Ernesto übersehen :oops: sorry.
MFG
- Ernesto -
JustusJonas - Mi 07.01.04 09:58
Ich mache das mit den INIs immer Folgendermaßen:
1. Type anlegen:
Delphi-Quelltext
1: 2: 3:
| TINI = record Maker : string; end; |
2. Variable anlegen:
3. Konstante anlegen:
Delphi-Quelltext
1: 2:
| const cINIFile = '.\lister.INI'; |
Und einlesen tu ich das ganze dann so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| DSNinifile := TINIFile.Create( cINIFile ); with INI do with DSNinifile do begin maker := ReadString( 'EINSTELLUNGEN', 'maker', '' ); if maker = '' then MessageDlg('INI-Read:Fehler in ' + cINIFile + '! Maker nicht angegeben!!', mtWarning, [mbOk], 0); end; DSNinifile.Free; end; |
Hoffe das hilft dir irgendwie weiter!?
Greetz
Delete - Mi 07.01.04 12:09
@JustusJonas: Warum weist du "maker" einen Leerstring zu? Wofür gibt´s denn den Default-Wert (= letzter Parameter bei ReadString). Es ist weniger umständlich, wenn du im Fall eines Fehlers (= Angabe existiert in der INI nicht) gleich den passenden Standardwert angibst.
Delete - Mi 07.01.04 16:27
Und das:
Delphi-Quelltext
1: 2:
| const cINIFile = '.\lister.INI'; |
ist auch eine relative Pfadangabe, kann also auch wieder in die Hose gehen. :roll:
opfer.der.genauigkeit - Do 08.01.04 09:26
Hi Schakal,
Vielleicht kriegst du deshalb nur 'keinen Pfad' als Rückwert, weil in der angegebene Bereich in der INI- File nicht gefunden wurde.
Überprüf nochmal den Aufbau deiner INI- Datei.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!