Autor Beitrag
Schakal
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50



BeitragVerfasst: 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
ausblenden Delphi-Quelltext
1:
2:
[EINSTELLUNGEN]
MAKER=C:\Spiele\RpgMaker2003\rpg2003\RPG2003.EXE


und hier der delphi code
ausblenden 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Mo 05.01.04 22:20 
Hi,

probiers mal so:

ausblenden 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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
BeitragVerfasst: 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 222



BeitragVerfasst: Mi 07.01.04 09:58 
Ich mache das mit den INIs immer Folgendermaßen:

1. Type anlegen:
ausblenden Delphi-Quelltext
1:
2:
3:
TINI = record    //Record für alle INI Werte
  Maker     : string;
  end;


2. Variable anlegen:
ausblenden Delphi-Quelltext
1:
2:
var
  INI                : TINI;


3. Konstante anlegen:
ausblenden Delphi-Quelltext
1:
2:
const
  cINIFile      = '.\lister.INI';  //Name des INI-Files angeben.


Und einlesen tu ich das ganze dann so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
DSNinifile := TINIFile.Create( cINIFile ); //Ini-Datei auslesen
  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



BeitragVerfasst: 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



BeitragVerfasst: Mi 07.01.04 16:27 
Und das:
ausblenden Delphi-Quelltext
1:
2:
const 
  cINIFile      = '.\lister.INI';  //Name des INI-Files angeben.

ist auch eine relative Pfadangabe, kann also auch wieder in die Hose gehen. :roll:
opfer.der.genauigkeit
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50



BeitragVerfasst: 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