Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi INI-Dateien (https://www.delphipraxis.net/83539-ini-dateien.html)

DerMike 4. Jan 2007 10:33


INI-Dateien
 
Hallo,

ich bin neu hier im Forum und hoffe, dass mir hier jemand auf die Sprünge helfen kann.

Ich habe während meiner Schulzeit bereits mit INI-Dateien gearbeitet. Ich hatte das eigentlich als sehr sehr leicht in Erinnerung. Leider stellt sich jetzt heraus, dass ich doch nichts mehr kann.

Ich habe mir folgende Anleitung bzgl. INI-Files INI Howto angesehen und versucht ein kleines Beispiel zu programmieren.

Meine INI-Datei test.ini

[Person]
vorname=Michael

und hier mein Programmcode
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Ini: TIniFile;
begin
 Ini := TIniFile.Create('test.ini');
  try
  Caption := Ini.ReadString('person', 'vorname', 'Kein Name');
  finally
    Ini.Free;
  end;
end;
Wenn ich alles richtig verstanden habe, dann ist 'Kein Name' ein Default Wert, der Zurückgegeben wird, wenn kein Wert in der INI-Datei gefunden wird. Für mich eigentlich unlogisch aber bitte.

Mein Problem ist jetzt, dass ich keinen Wert, außer "Kein Name" erhalte. Die Ini-Datei und das Programm sind im selben Ordner gespeichert. Der Pfad sollte also stimmen.

Warum funktioniert das nicht??

Klaus01 4. Jan 2007 10:38

Re: INI-Dateien
 
Vielleicht wird Deine Ini Datei nicht gefunden.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Ini: TIniFile;
begin
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'test.ini'); //<- geändert
  try
    Caption := Ini.ReadString('person', 'vorname', 'Kein Name');
  finally
    Ini.Free;
  end;
end;
Und herzlich Willkommen in der DP.

Grüße
Klaus

Balu der Bär 4. Jan 2007 10:38

Re: INI-Dateien
 
Guck mal mit Delphi-Referenz durchsuchenGetLastError rein oder versuche mal "Kein Name" wegzulassen. Eventuell wird die Datei trotzdem nicht gefunden, versuchs mal mit:

Delphi-Quellcode:
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'test.ini');

Harry M. 4. Jan 2007 10:42

Re: INI-Dateien
 
Du muss beimm Dateinamen für die Ini ein ".\" mit angeben oder den "Vollständig Qualifizierten Namen" (drive:\path\file.ext), also den Path.

MrKnogge 4. Jan 2007 10:43

Re: INI-Dateien
 
Zitat:

Zitat von DerMike
Die Ini-Datei und das Programm sind im selben Ordner gespeichert. Der Pfad sollte also stimmen.

Tut er aber nicht.

So funktioniert es:
Delphi-Quellcode:
ExtractFilePath(ParamStr(0)) + 'test.ini'
Gruß

DerMike 4. Jan 2007 10:47

Re: INI-Dateien
 
Die Antworten kamen ja schnell :)

hier gefällts mir.

Ich habe den Programm teil jetzt eingefügt, so wie du in mir geschickt hast.

Weglassen kann ich 'Kein Name' nicht, da er einen dritten Parameter erwartet. Wenn ich '' schreibe ist der Default Wert natürlich auch '' und somit mein Ergebnis.

Delphi-Quellcode:
ExtractFilePath(ParamStr(0)) + 'test.ini'
funktioniert auch nicht :gruebel:



THEMA ABGESCHLOSSEN. :thumb:

Ich habe alles gelöscht und neu angefangen. Die Ini-Datei habe ich auch neu erstellt. Dann habe ich das ganze so gemacht wie ihr es mir beschrieben habt.
Delphi-Quellcode:
ExtractFilePath(ParamStr(0)) + 'test.ini'
.

Jetzt funktioniert es. Danke Danke. Fragt mich aber nicht warum es vorher nicht funktioniert hat :?

Bernhard Geyer 4. Jan 2007 10:50

Re: INI-Dateien
 
Zitat:

Zitat von DerMike
Delphi-Quellcode:
ExtractFilePath(ParamStr(0)) + 'test.ini'
funktioniert auch nicht :gruebel:

Delphi-Quellcode:
ExtractFilePath(ParamStr(0)) + '\test.ini'
AFAIK nimmt ExtractFilePath auch das letzte '\' weg.

DerMike 4. Jan 2007 10:53

Re: INI-Dateien
 
THEMA ABGESCHLOSSEN. :thumb:

Ich habe alles gelöscht und neu angefangen. Die Ini-Datei habe ich auch neu erstellt. Dann habe ich das ganze so gemacht wie ihr es mir beschrieben habt. Delphi-Quellcode:
Delphi-Quellcode:
ExtractFilePath(ParamStr(0)) + 'test.ini')


Jetzt funktioniert es. Danke Danke. Fragt mich aber nicht warum es vorher nicht funktioniert hat :?

Udontknow 4. Jan 2007 12:28

Re: INI-Dateien
 
Hallo!

ExtractFilePath lässt den letzten Slash stehen, es hätte also so funktionieren müssen (hat´s ja dann auch). Die Fehlerquelle war wohl woanders.

Cu,
Udontknow


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:09 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