INI-Datei einlesen

pb_sergio

Mitglied
Hallo Leute

ich sitze gerade vorn nem dummen Problem. Ich will eine INI-Datei einlesen
und habe das Problem das s nicht klappt.
Ich benutze die WinAPI Funktion getPrivateProfileString, aber leider bekomme ich nichts zurück!

hier mein code
Code:
....
char test[500];
DWORD destsize=500;
int i;
i=GetPrivateProfileString("employ","employ1","Mist",test,destsize,"D:\Projekte\punchModul\worker.ini");
TextOut(hdc,0,0,test,strlen(test));
.....

Hey Danke für eure Hilfe
 
Mist, irgendwie kann ich gerade nicht i ausgeben! Keine Ahnung warum, denn mit TextOut geht es irgendwie nicht! Wie kann ich denn was in der Konsole ausgeben lassen. Schreibe ja gerade ne window anwendung?

Was er mir jedenfalls ausgibt ist "Mist"!
 
pb_sergio hat gesagt.:
Mist, irgendwie kann ich gerade nicht i ausgeben! Keine Ahnung warum, denn mit TextOut geht es irgendwie nicht! Wie kann ich denn was in der Konsole ausgeben lassen.
Kann ich dir ehrlich auch gerade nicht sagen.
Wenn ich eine Debugausgabe brauche, gehe ich normalerweise einen von zwei Wegen:
1. Ich setze mir einen entsprechenden Breakpoint innerhalb der IDE und untersuche dann zur Laufzeit den Inhalt des gewünschten Objekts.
2. Im "billigen" Fall haue ich mir die Daten mit einem ShowMessage() einfach auf den Bildschirm.

pb_sergio hat gesagt.:
Schreibe ja gerade ne window anwendung?
Wieso das "?"? Du solltest doch wissen, ob du jetzt eine Windows-Anwendung bastelst oder ein Konsolenprogramm. :-)

pb_sergio hat gesagt.:
Was er mir jedenfalls ausgibt ist "Mist"!
Was daran liegen kann:
1. Er kann die .ini-Datei nicht finden.
2. Er kann die .ini-Datei nicht öffnen.
3. Er findet in der .ini-Datei keine Sektion [employ]
4. Er findet in der .ini-Datei in [employ] keinen String employ1=irgendwas

Ich tippe auf 1., da du im String einfache \ verwendest und C++ üblicherweise in Strings, die zur Pfadangabe dienen, \\ bevorzugt. :-)
 
Hallo *mal einen Kommentar einwerf*

Muss der Pfad nicht mit \\ angegeben werden?
Sonst könnte \n und \t oder sowas vorkommen und das sind ja Steuerzeichen ;-)
Code:
i=GetPrivateProfileString("employ","employ1","Mist",test,destsize,"D:\\Projekte\\punchModul\\worker.ini");

MfG Turri
 
1. Turri hat natürlich vollkommen Recht!
2. Ausgaben auf der Konsole macht man bekanntlich mit printf!
3. Wenn Dir TextOut etwas ausgibt, dann schreibst Du keine Konsolenanwendung sondern eine Fensteranwendung. Beides können Windowsanwenungen sein, wenn sie unter Windows laufen.
4. Wenn TextOut "Mist" ausgibt, dann hat das mit dem Lesen aus der INI nicht geklappt (siehe 1.)

EDIT:
Um i mit TectOut auszugeben, mußt Du den int erst in einen String umwandeln (z.B. mit sprintf oder CString::Format(...))
 
Zuletzt bearbeitet:
Zurück