C++: ini verarbeiten...

orffyre

Erfahrenes Mitglied
Hallo werte Tutorials!

Ich habe ein Problem mit der Auswertung einer ini-Datei. In der ini-Datei stehen folgende Werte drin:

[name1]
wert = blabla
wert2 = xyz

[name2]
wert = blabla2
wert2 = com

Ich bräuchte jetzt Code, wie ich diese Informationen auswerten kann. Bei mir gibt es eine Klasse und einen Header namens "readini".

Er soll praktisch immer die Werte, die unter der eckigen Klammer stehen, in separate Dateien schreiben. Die Dateien heissen so, wie in der eckigen Klammer angegeben. Die Namen, also was in der eckigen Klammer steht, können unterschiedlich gross sein. Die Werte, die immer nach dem "=" kommen, eigentlich auch.

Also die Datei einlesen klappt schon, aber bei der Verarbeitung haperts.

Vielen Dank für Eure Mühe im Vorraus!

Viele Grüße,
orffyre
 
Zuletzt bearbeitet:
@anhadikal: Danke für den Link!

Leider ist mein Projekt bereits C++ UND Qt und ich weiss nicht, wie ich das noch zusätzlich mit dem msdn-Zeug hinkriegen soll, habe da Null Erfahrung.

Also entweder C++-Code oder Qt-Code oder von mir aus Beides wäre nicht schlecht. :-)

Viele Grüße,
orffyre
 
Hi,

kenn mich mit qt nicht gar so aus (nicht gar so? gar nicht!), aber das ist doch im Prinzip nur eine Funktionssammlung für GUIs schön in h/lib/dll verpackt?
Was ist da das Problem, eine ganz normale Funktion, die nichts mit qt zu tun hat, aufzurufen?
Sollte normalerweise gehn.

Wie gesagt, kenn mich mit qt nicht aus, also sorry wenn ich unsinn geschrieben hab.

gruß
 
@redwing: Ja, leider muss ich Qt3 nutzen und 4er geht nicht. :(

@devdevil: Ansi C? Ist doch nicht C++ oder? Noch eine andere Programmiersprache nehme ich jetzt auch nicht mehr rein. Trotzdem danke für die Idee.

Hmmm. Die Klasse und die cpp müssen echt nicht viel machen. Qt wäre wohl echt optimal, aber muss eben Qt3 sein.
Vielleicht hat ja noch jemand ne Idee...

Thx anyway!
 
Nja was muss se denn alles können? Kannste schnell selbst schreiben ... ini ist nun wirklich ein sehr einfaches Format ...

ANSI C ist nicht's anders als Std. C. Die Funktionen des C-Std. wurden in den C++-Std. übernommen und du kannst ohne Probleme C-Code in C++ nutzen. Allerdings sollte dir stehst der genaue übergang bewusst sein. Viele wissen nichtmals das sie da C-Code nutzen ... ;)
 
Okay, ich habe das alles mit der WinAPI realisiert. Trotzdem bräuchte ich nochmal Hilfe. Und zwar bekomme ich den genauen Pfad der ini nicht raus, weil er sich nicht richtig kompilieren lässt.

Hier meine Methode zum Verzeichnis setzen der ini:

Code:
erledigt...

Er beschwert sich und sagt:

error C2679: Binaerer Operator '=' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ
'unsigned short *' akzeptiert (oder keine geeignete Konvertierung moeglich)

Aber GetCommandLine() ist ja wie man sehen kann als String deklariert! Ich peil sein Problem nicht.

Vielleicht weiss einer von euch ja weiter.

Viele Grüße und danke,
orffyre
 
Zuletzt bearbeitet:
Hi.

Die Funktion GetCommandLine gibt einen LPTSTR zurück.

Wenn du in deinem Projekt MBCS oder UNICODE verwendest, heißt das, das ein wchar_t* zurückgegeben wird.

Entweder du stellst UNICODE ab, oder du konvertierst zwischen den Zeichensätzen oder du verwendest generell einfach UNICODE und std::wstring anstatt von std::string.

Gruß
 
Zurück