In INI Datei schreiben
-
Hallo,
ich ahbe folgenden Code, der auch eigentlich funktionieren sollte, da ich ihn schon in einem anderen Prog verwende:
if( FileExists(inidat) ) { iniDatei->WriteString("User","user0", "Marco"); }
Es wird aber absolut nichts in die Ini reingeschrieben, was mache ich denn falsch? Die Datei existiert und es gibt auch keinerlei Fewhlermeldungen. Sie bleibt einfach leer.
-
Zeig mal den kompletten Code, wo du die Ini anlegst usw., weil das wird wohl nicht reichen um rückschlüsse auf das Problem zu ziehen
-
Also die ini erzeuge ich so im Form Create:
TIniFile *lkIniFile = new TIniFile(inidat);
Da stellt sich mir auch gleich die nächste frage: Wie kann ich denn einfach eine bereits bestehende ini Datei öffnen? Und ist die ini immer im Windows Verzeichnis?
-
DieterW schrieb:
Wie kann ich denn einfach eine bereits bestehende ini Datei öffnen? Und ist die ini immer im Windows Verzeichnis?
In die Klammer gehört normalerweise der Pfad der Inidatei, das heißt sie liegt nicht immer im Windowsverzeichnis. Falls sie schon vorhanden ist, wird sie mit derselben Methode geöffnet, wenn nicht wird sie erstellt. Deswegen brauchst du den ganzen "FileExists"-Kram nicht.
Edit:
Zitate bitte auf das Notwendigste beschränken. Danke!
-
Die Ini-Datei wird immer dann automatisch im Windows-Verzeichnis angelegt (bzw. gesucht), wenn nur der Dateiname aber kein Pfad angegeben wird.
Da es aber äusserst uncool ist, das Betriebssystem zuzumüllen sollte man Ini-Dateien möglichst immer im Installationsverzeichnis des Programmes anlegen. Dazu ist, wie gesagt, eine explizite Pfadangabe erforderlich, dabei erweisen sich TApplication::ExeName und die verschiedenen ExtractFile...-Funktionen als überaus nützlich.