WritePrivateProfileString schreibt keine INI Datei
-
Hallo zusammen
Ich möchte mit WritePrivateProfileString gerne eine INI Datei erzeugen.
Das sieht dann testweise so aus:
if (!WritePrivateProfileString("My Section2", "My String Item", "My Int Item","test.ini")) { MessageBox(NULL,"Kann nicht ins INI schreiben","Hinweis",0);}
Leider kommt dann prompt diese Fehlermeldung und es wird kein File geschrieben.
An was könnte das liegen ?
Habe als Filename auch schon C:\\temp\test.ini versucht, gleiches Ergebnis.Gruss, Peter
-
Kann es sein, dass du erst die Datei von Hand erstellen musst, damit er dann nur noch reinschreiben braucht?
Alternativvorschlag: Wenn du nur Daten in einer ini-Datei ablegen willst, dann such mal auf www.codeguru.com nach einer Klasse namens "CIni". Funktioniert ganz gut.mfg
-
miwitt001 schrieb:
Kann es sein, dass du erst die Datei von Hand erstellen musst, damit er dann nur noch reinschreiben braucht?
Alternativvorschlag: Wenn du nur Daten in einer ini-Datei ablegen willst, dann such mal auf www.codeguru.com nach einer Klasse namens "CIni". Funktioniert ganz gut.mfg
Tatsächlich, das File muss schon vorhanden sein! Danke für den Tip.
Das mit dem CIni schau ich mir morgen an. Ist schon etwas spät zum Denken
-
Seit wann muss denn die Datei schon vorhanden sein?
Wenn ich eine schreiben lasse klappt das immer:AfxGetApp()->WriteProfileString("TEST", "Eintrag1", "Hütchenspieler");
Wenn die Datei nicht da ist, wird sie angelegt.
-
Du hast in deinem Code aber eine andere Funktion angegeben. Die schreibt laut MSDN immer in die win.ini.
mfg
-
Google: site:msdn.microsoft.com WritePrivateProfileString
If lpFileName contains a full path and file name and the file does not exist, WriteProfileString creates the file. The specified directory must already exist.
evtl. mal GetLastError() angucken..
-
Ich hab meinen Wissensstand noch erweitern können:
Gem. Doku erstellt WritePrivateProfileString schon ein neues File, aber im Windows Verzeichnis, sofern kein anderer Pfad angegeben ist. Da ich als eingeschränkter User nicht ins Windows Verzeichnis schreiben konnte, wurde da auch kein File erstellt.
Der neue Code sieht jetzt etwa so aus:
char buffer[1024]; GetCurrentDirectory(1024,buffer); strcat(buffer,"\\Settings.ini"); if (!WritePrivateProfileString("My Section", "My String Item", "My Int Item",buffer)) { MessageBox(NULL,"Kann nicht ins INI schreiben","Hinweis",0);}