AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IniFile - Auslesen funktioniert nicht

Ein Thema von Cyberbob · begonnen am 20. Aug 2006 · letzter Beitrag vom 21. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#1

IniFile - Auslesen funktioniert nicht

  Alt 20. Aug 2006, 05:01
Hallo, ich habe ein Problem mit IniFiles. Ich möchte einen Wert in einer Sektion auslesen, das funktioniert allerdings nicht.

Mein Code:
Delphi-Quellcode:
try
  IniDatei := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
  len := IniDatei.ReadInteger('Global', 'EQ', 0);
  ShowMessage(IntToStr(len));
finally
  IniDatei.Free;
end;
Die IniDatei sieht vollgendermassen aus:
Delphi-Quellcode:
[Global]
EQ=1
Weiss einer Rat, alle Variablen sind Deklariert doch in len steht immer 0 (Null)!

Was mach ich falsch, ich wüsste nicht, was ich anderst gemacht haben sollte als sonst...
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Daniel B
Daniel B

Registriert seit: 27. Okt 2005
Ort: Dachau
453 Beiträge
 
Delphi 2007 Professional
 
#2

Re: IniFile - Auslesen funktioniert nicht

  Alt 20. Aug 2006, 05:08
Das Create vor dem try setzen und Inifile muss als TIniFile deklariert sein in der Prozedur bei den variablen. Besser im Finally ein FreeAndNil(IniFile).
Servus...
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#3

Re: IniFile - Auslesen funktioniert nicht

  Alt 20. Aug 2006, 09:07
Deine Code funktioniert fehlerfrei.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 iniDatei : TIniFile;
 len : Integer;
begin
try
  IniDatei := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
  len := IniDatei.ReadInteger('Global', 'EQ', 0);
  ShowMessage(IntToStr(len));
finally
  IniDatei.Free;
end;
end;
Könnte es sein das es an dieser Zeile liegt:
IniDatei := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')); ChangeFileExt(ParamStr(0)) ändert den Dateinamen der Exe (also z.B. Projekt1.exe) in Projekt1.ini. Bist du sicher das diese Datei existiert?
  Mit Zitat antworten Zitat
Benutzerbild von Daniel B
Daniel B

Registriert seit: 27. Okt 2005
Ort: Dachau
453 Beiträge
 
Delphi 2007 Professional
 
#4

Re: IniFile - Auslesen funktioniert nicht

  Alt 20. Aug 2006, 09:23
Da soll er natürlich ExtractFilePath nehmen, dennoch gehört das Create nicht ins try...
Servus...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: IniFile - Auslesen funktioniert nicht

  Alt 20. Aug 2006, 09:26
Zitat:
dennoch gehört das Create nicht ins try...
Warum nicht ?
Markus Kinzler
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#6

Re: IniFile - Auslesen funktioniert nicht

  Alt 20. Aug 2006, 09:27
Zitat von Daniel B:
Da soll er natürlich ExtractFilePath nehmen, dennoch gehört das Create nicht ins try...
Ich hab auch nie das Gegenteil behauptet.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#7

Re: IniFile - Auslesen funktioniert nicht

  Alt 20. Aug 2006, 09:32
Zitat von mkinzler:
Zitat:
dennoch gehört das Create nicht ins try...
Warum nicht ?
Weil's keinen Sinn ergibt?
Überleg doch mal, was passiert, sollte eine Exception im ctor ausgelöst werden. Der Ini-Variablen wird kein Pointer zugewiesen, da der Code sofort ins Finally springt. Und da Delphi keinen lokalen Variablen initialisiert, knallt es höchstwahrscheinlich dann beim Aufruf von Free, weil IniDatei sonstwohin zeigen kann.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.756 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: IniFile - Auslesen funktioniert nicht

  Alt 20. Aug 2006, 10:05
Zitat von Balu der Bär:
Könnte es sein das es an dieser Zeile liegt:
IniDatei := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')); ChangeFileExt(ParamStr(0)) ändert den Dateinamen der Exe (also z.B. Projekt1.exe) in Projekt1.ini. Bist du sicher das diese Datei existiert?
Das tut es mitnichten, es ändert die Extension des übergebenen Dateinamen, aber ändert nicht
den Dateinamen auf der HD.

Aber wie wieter oben schon einmal bemerkt ist es wohl besser dies zu nehmen:

IniDatei := TIniFile.Create(ExtractfilePath(ParamStr(0))+ChangeFileExt(ParamStr(0), '.ini')); Funktioniert aber nur wenn Deine ini Datei auch im Verzeichnis der exe liegt.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#9

Re: IniFile - Auslesen funktioniert nicht

  Alt 20. Aug 2006, 10:12
Klaus, hast du deinen Vorschlag einmal getestet?

Gruß Hawkeye
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.756 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: IniFile - Auslesen funktioniert nicht

  Alt 20. Aug 2006, 10:17
@Hawkeye

nein :o( aber jetzt schon
und da ist etwas dopplet gemoppelt.
In ChangeFileExt ist der komplette Pfad schon enthalten.
Daher kann der Vorschlag vergessen werden.

Danke und Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz