Anfänger: Wie aus String LPINT machen ?
-
Hallo, leider bin ich noch etwas unerfahren,
deshalb wollte ich wissen,wie ich folgendes mache:Bekomme aus der Registry einen String ("1;2;3;4;5") dein möchte ich in einen LPINT umwandeln. Bis jetzt mach ich dass von Hand, gitbs da nix zum konvertieren ?
Wäre echt prima. lg chilli
-
Warum willst Du den in einen LPINT umwandlen? Ohne mehr Infos geht das nicht (es gibt keine Umwandlung eines String nach LPINT; du musst schon erzählen was Du eigentlich vor hast)
-
Ok tut mir leid. Also ich möchte mit SetColumnOrderArray, die Spaltenreihenfolge einer ListView setzen.
Habe jetzt dafür folgenden Ansatz:
int iColumns = 8; int i = 0; int iPos = 0; int p = 0; LPINT lp_OrderArray = (LPINT) malloc(iColumns*sizeof(int)); for( i;i < iColumns-1; i++) { strRegPos = strColOrder[p]; int nNumField = _stscanf(strRegPos, _T("%d"), &iPos); if (nNumField != EOF) { lp_OrderArray[i] = iPos; p = p + 2; //next Pos } }wobie strColOrder so aussieht "1;2;3;4;5;6;7".
Wenn ich "meinen" LPINT nehme, dann bekomm ich ne Exception
-
Du musst ja zuerst mal den String "Aufsplitten"... dazu würde ich strtok (bzw. _tcstok) verwenden. Das ergebnis stopfst Du dann ein ein std::vector<INT> rein.
Dann weisst Du wie viele Einträge drin sind und kannst passend ein LPINT allokieren:LPINT pOrderArray = new INT[myVector.size()];Jetzt kannst Du alles in das Array rein tun und es der Funktion übergeben.
Anschliessend wiederdelete [] pOrderArray;
-
Ich weiß doch wie groß mein LPINT sein muss, 8*int, da ich 7 Spalten habe.Zudem weiß ich ja dass in meinem String jeder 2 "Buchstabe" eine Zahl is, also geh ich mit 2er Schritten durch den String und hab somit die Reihenfolge.
Das PRoblem is wenn ich den LPINT dann über geb, bekomm ich ne Exception... HMM HMMDanke für die schnellen antworten..
-
Dann zeig uns mal den Aufruf, welcher die Excepion erzeugt...
-
pctrlLstView->SetColumnOrderArray(iColumns,(lp_OrderArray));
-
AFAIK beginnt der Index aber mit 0!
-
Hab doch bei null angefangen !?
-
Hallöchen, hat keiner mehr ne idee ?