Konvertierung von char in int
-
hi
ich schreibe ein programm das daten aus einer *.ini einliest und diese verarbeitet.
Datei config.ini
-----------------------
[common]
var=117
bio=2
-----------------------Mit hilfe der FAQ habe ich nun folgenden code zusammen gestellt::
char var[4]; char bio[4]; DWORD destSize; destSize=4; GetPrivateProfileString("common","var","NULL",var,destSize,"config.ini"); GetPrivateProfileString("common","bio","NULL",bio,destSize,"config.ini");ich habe nun in der VAR den Wert 117 und will diesen mit einer IF schleife prüfen.
int huck = atoi(var); if(huck == 117) { huck + 657; MessageBox(NULL, "IF 1 OK" , "IF 1 OK", MB_OK); }Das geht nun leider nicht. Ihr werdet bestimmt wissen weshalb nicht. Nach langem googlen bin ich etwas hilflos.
Mein problem: ich will die var in eine int variabel wandeln um diese dann zu erhöhen oder zu verkleinern und anschliessend wieder in die config.ini datei zu schreiben.
Laut FAQ schreibe ich das dann so:
WritePrivateProfileString("common","var",huck,"config.ini");Meine zweite frage: Wenn ich das wie oben beschrieben in die config.ini schreibe überschreibt er den vorhandenen eintrag(müsste so laut code eigentlich sein) oder fügt er einen neuen hinzu, wie kann ich die int variabel hineinschreiben? er erwartet ein char!?
Also Zusammengefasst.
char wert einlesen in int wandeln, bearbeiten und wieder in datei schreiben.Wie geht das?
-
Auslesen kannst du auch direkt als int mittels GetPrivateProfileInt: http://msdn2.microsoft.com/en-us/library/ms724345.aspx
Um es dann aber wieder zurück zu schreiben muss du es vorher selbst wieder in einen String umwandeln (itoa, wsprintf, etc.)
-
dank für den Tip.
// Schreiben WritePrivateProfileString("common","var","88","C:\\test.ini"); // Auselsen GetPrivateProfileInt("common","var",var,"C:\\test.ini"); TCHAR pBuf[100]; wsprintf(pBuf, TEXT("%i"), var); MessageBox(NULL, pBuf, TEXT("test"), MB_OK);Wieso lese ich "0" aus?
-
Guck dir mal die Funktion GetPrivateProfileInt an. Du bekommst den int als Rückgabewert. Was du übergibst ist nur ein Default value falls er nix findet.
MfG schirrmie