![]() |
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:
in den uses hab ich IniFiles drin...
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; 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 |
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...?
|
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:
Bei mir ging es dann.
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; |
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; |
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
|
Re: ini files funktionieren nicht
Besser ist es aber die ini-Datei ins Profilverzeichnis(APPDATA) des Benutzers oder unter "Alle Benutzer" zu speichern
|
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 |
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');
|
Re: ini files funktionieren nicht
Zitat:
Es wird in User\Applicationsdatata\... oder so ähnlich ein virtuelles Verzeichnis angelegt und dort steht dann die Inifile. Gruß Peter |
Re: ini files funktionieren nicht
@hanspeterAuch mit ParamStr oder muss der komplette Pfad User\Applicationsdatata\... bla angeben werden ?
|
Re: ini files funktionieren nicht
Zitat:
|
Re: ini files funktionieren nicht
Danke Luckie hätte ja sein können, man weiss ja Nie. :wink:
|
Re: ini files funktionieren nicht
Zitat:
Und wenn der Pfad dann keine Schreibrechte hat (oder auch manchmal so je nach Vistalaune?) dann wird der Pfad virtualisiert. Ich habe Program Files\EigeneAnwendung freigegeben. Mir ist es mehrfach passiert, dass beim Zugriff mit ParmStr dann das Verzeichnis Programme\EigeneAnwendung angelegt und dort hin geschrieben wird. Es scheint so, das unter Vista eine Aufteilung in Programmpfad und Applicationsdaten unter User zwingend notwendig ist, wenn man repoduzierbare Ergebnisse will. Ich fordere das Applicationsverzeichnis bei Programmstart über die API an und habe damit das Problem gelöst. Nachteil beim Entfernen des Programmes müssen 2 oder mehr Verzeichnisse gelöscht werden. Gruß Peter |
Re: ini files funktionieren nicht
Ist ja alles richtig was ihr da schreibt, ABER:
Zitat:
Er will LESEN und schreibt "WriteString". Damit kann man aber nicht lesen...... :) |
Re: ini files funktionieren nicht
Hallo Glühwürmchen,
"lesen" ist ein gutes Stichwort: Zitat:
Gruß Hawkeye |
Re: ini files funktionieren nicht
Als mein Beitrag dann da stand, hab ich ihn mir noch mal durchgeLESEN und erkannte, mit leicht rötlichem Gesicht:
Sie hatten ja doch recht..... ok. |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Es geht um Delphi. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz