![]() |
erzeugen einer TInifile
hallo,
nach ner großen delphipause, bin ich nun wieder am start, mehr oder weniger frisch ;) ich hab Delphi 7 Enterprise, viell is das ja nen grund für ein anliegen, was ich aber bezweifel. also folgendes: ich erzeuge in meinem programm eine ini-datei, sofern sie nicht existiert, des weiteren trage ich gleich ne sektion ein und nen key + value...alles nur zum test. geht wunderbar, mein programmverzeichniss welches vorher keine *.ini aufwies hat nun eine drin....ich kann aus "ihr"!?!? auslesen und sektions inne combobox schreiben. wenn ich allerdings die *.ini datei mit notepad öffne steht nicht ein buchstabe drin, folglich dacht ich mir such ich mal, kann ja nicht sein das ich etwas aus der datei auslese obwohl scheinbar nix drin is! gesucht gefunden gestaunt.... und zwar habe ich nun 2 ini-datein mit demselben namen, sprich eine in meinem programmverzeichniss, und eine in dem ordern C:\WINNT .... und in der ini-datei in dem C:\WINNT-ordner stehen auch die einträge drin, die frage is nu für mich wie kommt die datei dahin, und warum wird denn so gesehen aus ihr ausgelesen/in ihr geschrieben und nicht in die in meinem programmordner!? quellcode is an sich richtig, auch habe ich keinerlei verweise auf den C:\WINNT-ordner in meinem quellcode gemacht, deswegen poste ich erstmal keinen. kann mir nu einer helfen und sagen was da intern passiert ist..ich hätte schon gern nur eine *.ini datei die in meinem programm erzeugt wird, und die sollte sich dann doch im programmordner befinden gruss haegar edit: huch kann es sein das ich nicht ganz die richtige sparte erwischt hab, wenn dem so is...asche auf mein haupt |
Re: erzeugen einer TInifile
Wenn ich mich richtig erinne, musst du beim erzeugen/auslesen/beschreiben einer TIniFile den kompletten Pfad zu dieser angeben, sonst legt er sie automatisch im Windows-Verzeichnis ab. Da das bei dir der eigene Ordner sein soll, verusch doch mal den Dateinamen für die Ini mit
Delphi-Quellcode:
anzugeben.
extractFilePath(paramstr(0))+'\meineIni.ini'
|
Re: erzeugen einer TInifile
super sache, ging ja flott...das mit dem befehl war mir bekannt, nur hatte ich noch ne methode fileCreate drin, die mir da was verbaut hatte...
nun hatte ich grad das problem, das er die sections nicht erkannt hat, obwohl welche drin standen. ich hatte diese mittels:
Delphi-Quellcode:
auslesen wollen, allerdings fand er keine, er hat zwar die datei gefunden, aber keine sections drin, nun habe ich ebenfalls deinen code eingefügt, und siehe da es ging....ist es also generell so, das ich den kompletten Pfad angeben muss, auch wenn ich weiss das das ding im selben ordner liegt wie die exe-datei!?
eventIni := TIniFile.Create('events.ini');
events := TStringList.Create; eventIni.ReadSections(events); gruss haegar |
Re: erzeugen einer TInifile
Zitat:
|
Re: erzeugen einer TInifile
Verzähl nix, es reicht wenn du deine Ini File so schreibst, b.z.w. auf sie zugreifst:
Delphi-Quellcode:
var
IniFile: TMemIniFile; begin IniFile := TMemIniFile.Create('.\' + Filename + '.ini'); // Hier kommt dein Zeuchs hin was du machen willst // Zeuchs Ende :-) IniFile.Update; IniFile.Free; end; |
Re: erzeugen einer TInifile
Moin Felix,
die Verwendung von relativen Pfaden ist immer gefährlich. Beispielsweise genügt es einen OpenDialog im Programm zu haben, bei dem der Verzeichniswechsel erlaubt ist, und schon geht der Zugriff per relativem Pfad daneben. |
Re: erzeugen einer TInifile
hi,
aus dem
Delphi-Quellcode:
musst du das machen:
eventIni := TIniFile.Create('events.ini');
Delphi-Quellcode:
eventIni := TIniFile.Create(extractfilepath(application.exename)+'events.ini');
|
Re: erzeugen einer TInifile
Zitat:
|
Re: erzeugen einer TInifile
Hallo Haegar,
ein Programm braucht eigentlich immer zwei INI-Dateien. Die erste liegt bei meinem Programm im Installationsverzeichnis. Sie wird nur gelesen und dient der Konfiguration durch den Administrator.
Delphi-Quellcode:
Die zweite ist benutzerbezogen und enthält die impliziten (Fenstergrößen und -positionen, etc.) und expliziten Einstellungen (Hauptmenü: Optionen, Ansicht, etc.) des Benutzers.
ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
Delphi-Quellcode:
Leichte Variationen je nach den Betriebsrichtlinien der Kunden existieren - das Konzept bleibt immer gleich.
resourcestring
ENV_APPDATA = 'APPDATA'; function AppDataDir: string; begin Result := GetEnvironmentVariable(ENV_APPDATA); end; begin ini := TIniFile.Create(AppDataDir + ChangeFileExt(ExtractFileName(ParamStr(0)), '.ini'); ... end; Grüße vom marabu |
Re: erzeugen einer TInifile
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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