Entwickler-Ecke

Dateizugriff - INI Datei auf Sections prüfen ... prob


raven - Fr 06.06.03 15:52
Titel: INI Datei auf Sections prüfen ... prob
hi leutz ;)

ich möchte zu begin meines programms in einer Ini Datei prüfen ob 4 bestimmte sections vorhanden sind ... die ini datei soll beim starten des Progs in einem open dialog ausgwählt werden... wenn die 4 sections vorhanden sind kommt ne meldung OK und das prog wird angezeigt, wenn nich kommt ein fehlerdialog und das programm wird geschlossen, also nicht geöffnet... das prob is nur egal welche ini datei ich auswähle, ganz egal ob die sections excisitieren es kommt immer die fehlermeldung... ?!? wer erkennt hier den fehler?:

ia: ne stringvariable die den file path speichert ....

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.FormCreate(Sender: TObject);
var
ini:Tinifile;
begin
if open.execute then
begin
ia:=open.Files.Text;
ini:=tinifile.create(ia);
if (ini.SectionExists('Engine.GameEngine')=true) and (ini.SectionExists('D3DDrv.D3DRenderDevice')=true) and (ini.SectionExists('WinDrv.WindowsClient')=true) and (ini.SectionExists('Engine.Player')=true) then
begin
showmessage('ok!')
end
else
begin
messagedlg('Ungültige *.INI Datei!',mterror,[mbok],0);
application.Terminate;
end;
end;
end;


danke


Delete - Fr 06.06.03 21:37

Geht. Ich vermisse lediglich, dass du die Variable "ini" am Schluss wieder freigibst. So sieht´s bei mir aus:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
  ini:=TIniFile.Create(ia);
  try
    if(ini.SectionExists('Engine.GameEngine')) and
      (ini.SectionExists('D3DDrv.D3DRenderDevice')) and
      (ini.SectionExists('WinDrv.WindowsClient')) and
      (ini.SectionExists('Engine.Player')) then
    begin
      showmessage('ok!')
    end else begin
      messagedlg('Ungültige *.INI Datei!',mterror,[mbok],0);
      application.Terminate;
    end;
  finally
    ini.Free;
  end;

Klappt. Ich vermute den Fehler eher hier:
raven hat folgendes geschrieben:

Delphi-Quelltext
1:
ia:=open.Files.Text;                    

Wie wär´s stattdessen mit

Delphi-Quelltext
1:
ia := open.FileName;