INI datei läst sich nicht erstellen und auslesen, wieso?
-
Das Problem hatte ich auch mal, in der MSDN steht, dass (zumindest Windows bis Me) das so handhaben:
MSDN schrieb:
If the lpFileName parameter does not contain a full path and file name for the file, WritePrivateProfileString searches the Windows directory for the file. If the file does not exist, this function creates the file in the Windows directory.
-
jo hab ich eben auch mit bekomm als ich nach der datei gesucht hatte. kann man das irgendwie aendern?
-
Ne, hilft nur, den kompletten Pfad anzugeben (wie Airdamn schon meinte) :p
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
ne du brauchst nicht den kompletten Pfad angeben aber ich weis nicht genau wie das war zu hause kann ich genau nachgucken aber irgendwas in der form ".\\datei.ini". Wenn die Datei dann im selben Ordner liegt findet das die Funktion die ini.
schirrmie
-
Schau mal in den Windows ordner, dort erstellt der die ini für gewöhnlich wenn du keinen Pfad angibst

-
schirrmie schrieb:
".\\datei.ini". Wenn die Datei dann im selben Ordner liegt findet das die Funktion die ini.
Aber nur mit Glück., den auch hier wird die Datei im aktuellen Arbeitsverzeichnis erstellt, was aber nicht zwingend das Programmverzeichnis sein muss. warum sträubt ihr euch so dagegen den absoluten Pfad anugeben? Zu mal er sowieso einen absoluten Pafd angeben muss und zwar, wenn er die Datei da speichert, wo sie hingehört, ins Anwendungsverzeichnis des HOMEDIR des Benutzers. Im Programmordner hat in der Regel nur der Administrator Schreibrechte. Bei mir unter XP würde das Programm nicht laufen.
-
Ich habe ein ähnliches Problem und dazu eine kleine Frage...
Kann es sein, dass die Funktion auch ein Problem mit Netzwerkpfaden hat?
Also in meinem Fall: \\192.168.10.2\Ordner$\Datei.conf
Dann wird auch hier die Datei am richtigen Ort nicht erstellt... gibt es da ein Workaround oder vielleicht eine besser geeignete Funktion zum Erstellen einer solchen Datei? (Textdatei, die mit INI-Funktionen beschrieben und gelesen wird)
Viele Grüße,
GoldenAge
-
Nein. Die Funktion hat kein Problem mit Netzwerkpfaden.
Was sagt GetLastError?
Ist das Vista?
Benutzt Du C$ als Share, also einen Administrativen Zugang? Das würde nur in einem Prozess mit gehobenen Rechten gehen.
-
Martin Richter schrieb:
Was sagt GetLastError?
Die Funktion hab ich noch nie verwendet... so wie sie hier aufgerufen wird, funktioniert sie bei mir jedenfalls nicht...
Martin Richter schrieb:
Ist das Vista?
Nein, XP.
Martin Richter schrieb:
Benutzt Du C$ als Share, also einen Administrativen Zugang? Das würde nur in einem Prozess mit gehobenen Rechten gehen.
Hmh... wahrscheinlich (habe die Freigabe nicht selbst eingerichtet). Allerdings funktionieren z.B. problemlos:
MyIni = new TIniFile(Filename); FILE *fp = fopen(pFileName, "rb"); Value = MyIni->ReadString ("AUTO", Name, "no data");Also warum sollte ausgerechnet WritePrivateProfileString(); nicht funktionieren?
Und ist es nicht so oder so sinnvoller, die Datei anderweitig zu erstellen? (z.B. mit Stream-Funktionen?)
Edit:
Sorry - hat sich geklärt, der Fehler war allerdings meilenweit entfernt! Trotzdem vielen Dank für die Antwort...