Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   ini files funktionieren nicht (https://www.delphipraxis.net/89535-ini-files-funktionieren-nicht.html)

maddins 1. Apr 2007 23:52


ini files funktionieren nicht
 
hallo,

ich muss bei meinem programm daten aus einer ini-datei lesen. leider funktioniert das nicht so, wie ichs mir vorgestellt hab. genauer gesagt: es passiert GARNICHTS.

eine fertige ini datei mit werten hatte ich schon und hab dazu schnell noch ne procedure geschrieben, die dann aber keine testwerte ausgespuckt hat. auch eine überprüfung mit sectionexists(..) brachte vorerst keine positiven werte. also hab ich mir gedacht, lass ich mir die datei einfach vom programm schreiben. dazu folgende procedure:

Code:
procedure tform1.writeini;
 var ini:Tinifile;
begin
  ini:=TIniFile.Create('cfg.ini') ;

  ini.WriteString('Benutzer','Name1','Mustermann');
  ini.WriteString('Benutzer','Name2','Meier');
  ini.Free;

end;
in den uses hab ich IniFiles drin...

zu meinem erstaunen musste ich feststellen, das auch hier nichts passierte.

was hab ich falsch gemcaht? hab ich was vergessen?

danke für die hilfe

martin

blablab 2. Apr 2007 00:12

Re: ini files funktionieren nicht
 
Wenn du den Dateinamen so angibst, dann speichert er die Ini-Datei ins Windowsverzeichnis. Vielleicht hast du sie deshalb nicht entdeckt...?

bitsetter 2. Apr 2007 00:27

Re: ini files funktionieren nicht
 
Hi,

wenn du die INI im Verzeichnis deines Programms erstellen möchtest, und du Schreibrechte besitzt dann kannst du es so machen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var ini:Tinifile;
begin
  ini:=TIniFile.Create(ExtractFilepath(paramstr(0))+ 'cfg.ini') ;
  ini.WriteString('Benutzer','Name1','Mustermann');
  ini.WriteString('Benutzer','Name2','Meier');
  ini.Free;
end;
Bei mir ging es dann.

blablab 2. Apr 2007 00:36

Re: ini files funktionieren nicht
 
Oder noch einfacher:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var ini:Tinifile;
begin
  ini:=TIniFile.Create('.\cfg.ini') ;
  ini.WriteString('Benutzer','Name1','Mustermann');
  ini.WriteString('Benutzer','Name2','Meier');
  ini.Free;
end;

cruiser 2. Apr 2007 01:26

Re: ini files funktionieren nicht
 
'.\cfg.ini' ist nicht empfehlenswert. Dann speichert er ins aktuelle Ausführungsverzeichnis, was nicht zwingend das Verzeichnis der exe ist

mkinzler 2. Apr 2007 06:31

Re: ini files funktionieren nicht
 
Besser ist es aber die ini-Datei ins Profilverzeichnis(APPDATA) des Benutzers oder unter "Alle Benutzer" zu speichern

maddins 2. Apr 2007 07:21

Re: ini files funktionieren nicht
 
boah verdammt... wer hat sich denn sowas ausgedacht!
wenn ich als exe ne datei erstellen würde, bei der kein pfad oder ähnliches davor steht, dann pack ich mir die doch ins das verzeichnis, wo ich selber bin...

ich weiß auch nicht, warum das immer alles so umnständlich sein muss.

jedenfalls danke an alle für die schnelle hilfe, funktioniert bestens.

martin

Blackheart 2. Apr 2007 08:29

Re: ini files funktionieren nicht
 
Normalerweise funktioniert das mit ParamStr, liefert Dir das Verzeichnis deiner Exe - (unter Vista wohl nicht mehr wegen den Schreibrechten).
Delphi-Quellcode:
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'cfg.ini');

hanspeter 2. Apr 2007 08:34

Re: ini files funktionieren nicht
 
Zitat:

Zitat von Blackheart
Normalerweise funktioniert das mit ParamStr, liefert Dir das Verzeichnis deiner Exe - (unter Vista wohl nicht mehr wegen den Schreibrechten).
Delphi-Quellcode:
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'cfg.ini');

Doch funktioniert unter Vista aber ganz verrückt.
Es wird in User\Applicationsdatata\... oder so ähnlich ein virtuelles Verzeichnis angelegt und dort steht dann die Inifile.


Gruß
Peter

Blackheart 2. Apr 2007 08:42

Re: ini files funktionieren nicht
 
@hanspeterAuch mit ParamStr oder muss der komplette Pfad User\Applicationsdatata\... bla angeben werden ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:11 Uhr.
Seite 1 von 2  1 2      

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