Registry und INI-Dateien
-
Hallo Zusammen!
bietet C irgendwelche Funktionen zum Lesen und Schreiben von Konfigurationseinstellungen entweder in eine INI-Datei (http://de.wikipedia.org/wiki/INI-Datei) oder in die Windows-Registry?
Ich würde mir, wenn es geht sowas wie ein Ordner oder so (sowas gibt es doch in der Registry, oder?) erstellen und da meine Programmschlüssel schreiben.
Werden die INI-Dateien meistens mit fprintf(); und fscanf(); gelesen? Das geht doch auch anders, oder nicht?Vielen Dank schon mal.
-
Mit ANSI C hat das weniger zu tun. Die WinAPI bietet Funktionen zum Zugriff auf die Registry, weswegen ich dich mal dahin verschiebe. Ob die WinAPI auch Funktionen zum einfacheren hantieren mit ini-files wird sich dort sicher auch klären
-
Dieser Thread wurde von Moderator/in TactX aus dem Forum ANSI 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.
-
-
Auch entsprechende Funktionen zum Lesen von INI Dateien sind in dr Win32 API verankert.
Ansonten gibt es auch Code, der dies ohne die entsprechende API kann:
http://www.codeproject.com/useritems/SimpleIni.asp
-
Danke, aber das sieht irgendwie noch ein bisschen komisch aus...
ich möchte ja auch ini-Dateien schreiben. Also prinzipiell reicht es mir, wenn mein Programm eine Datei öffnet, und zu einem Schlüsselwort (z.B. Bildposition=, Hintergrundsfarbe=, ...) irgendwelche Werte schreibt, die ich dann wieder auslesen kann. (Also das Prog Sucht den Wert für Position, usw.)
Muss das wirklich so kompiziert sein?
-
Nein für ini dateien gibt es auch 2 nette kleine funktionen für. Aber die hab ich jetzt nicht hier aber ich such sie dir mal zu morgen raus.
MfG schirrmie
-
Das kannst du doch mit WritePrivateProfileString machen (siehe mein Link etwas weiter oben)
-
Ja genau die Funktion meinte ich auch. Da hab ich im Netz irgendwo mal die kleinen Funktionen gefunden, vielleicht helfen sie dir ja.
int ReadINIInt(char *Section, char *Key, char *File) { char acString[512]; GetPrivateProfileString(Section, Key, "[NOT FOUND]", acString, 512, File); if(!strcmp(acString, "[NOT FOUND]")) { // Fehlerbehandlung return 0; } return atoi(acString); } char* ReadINIString(char *Section, char *Key, char *File) { char acString[512]; GetPrivateProfileString(Section, Key, "[NOT FOUND]", acString, 512, File); if(!strcmp(acString, "[NOT FOUND]")) { // Fehlerbehandlung return ""; } return acString; } bool WriteINIInt(char *Section, char *Key, char *File, int i) { char acString[256]; itoa(i, acString, 10); if(!WritePrivateProfileString(Section, Key, acString, File)) return false; return true; } bool WriteINIString(char *Section, char *Key, char *File, char *str) { if(WritePrivateProfileString(Section, Key, str, File)) return false; return true; }
Sollte man aber denk ich noch bissel anpassen.
MfG schirrmie