| Autor |
Beitrag |
Schakal
      
Beiträge: 50
|
Verfasst: Mo 05.01.04 20:09
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
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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 
      
Beiträge: 50
|
Verfasst: 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
      
Beiträge: 528
Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
|
Verfasst: 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 -
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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
      
Beiträge: 528
Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
|
Verfasst: 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 -
|
|
Chatfix
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Di 06.01.04 09:40
Hier ein Tutorial zu INIs vielleicht hilft dir des weiter:
www.kuknet.de/kuk-software/tuts/tut1.php
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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.  Du hast natürlich Recht. Ich habe nicht gesehen, dass du den Quellcode von Schakal übernommen hast.
|
|
ErnestoChe
      
Beiträge: 528
Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
|
Verfasst: Di 06.01.04 12:52
Hi,
ach so. Kein Problem  . 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  sorry.
MFG
- Ernesto -
|
|
JustusJonas
      
Beiträge: 222
|
Verfasst: 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:
Delphi-Quelltext
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
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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. 
|
|
opfer.der.genauigkeit
      
Beiträge: 754
Erhaltene Danke: 1
|
Verfasst: 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.
_________________ Stellen Sie sich bitte Zirkusmusik vor.
|
|
Schakal 
      
Beiträge: 50
|
Verfasst: Do 08.01.04 15:23
ich konnte das problem lösen, es lag anscheinend daran das sich der pfad geändert hat und die ini deswegen nicht gefunden wurde.
www.delphi-forum.de/viewtopic.php?t=20442
|
|