CString aufteilen und in Array speichern
-
Zeig einfach Code, dann wird das hier schon. Mit "leider schaffe ich es nicht" kann leider keiner was anfangen.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum MFC (Visual C++) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Verstehe das Prob. gerade nicht...
CString aufsplitten und in ArrayHier bekomme ich meine Daten
CString csMsgId,csMsgName;
m_EditMsgID.GetWindowTextA(csMsgId);
m_EditMsgName.GetWindowTextA(csMsgName);Hier möchte ich sie rein haben
stMsgList[...].u32MSG=...;
stMsgList[...].cMsgName=...;Index ist natürlich Variabel.
Mehr Code gibts da nicht XD. Die anderen 2000 Zeilen drehen sich um etwas vollkommen anderes. Sry für die CString Sache aber wenn man es nicht besser weiss...
LG
MOE
-
Probier's mal mit Tokenize:
http://msdn.microsoft.com/en-us/library/k4ftfkd2(v=vs.80).aspx
-
Und warum weißt Du die Ergebnisse nicht einfach zu?
Was meinst Du bitte mit aufteilen?m_EditMsgID.GetWindowTextA(csMsgId); m_EditMsgName.GetWindowTextA(csMsgName); // Ich denke dasist ein ULONG7unsinged int? stMsgList[x].u32MSG=_tcstoul(csMsgOd,NULL,10); stMsgList[x].cMsgName=csMsgName;
BTW: Es gibt auch GetDlgItemInt.
-
Gut nochmal von vorn :).
Benutzer kann mit Komma getrennt DAten eingeben. z.b. 0x03,0x04,0x05 usw.
Nun muss das ganze in das Struct Array (m_pstMsgList), aufgeteilt in u32Msg (unsigned long) und csMsgName (eCString) übertragen werden.Das habe ich unterschlagen
struct st_MSG { DWORD u32MSG; std::string cMsgName; }; typedef struct st_MSG T_MSG;
Danke für Antworten
LG
MIE
-
Masterofeye schrieb:
Benutzer kann mit Komma getrennt DAten eingeben. z.b. 0x03,0x04,0x05 usw.
Was heißt das? Dass der Benutzer hexadezimale Zahlen in die Tastatur hämmert, wie von dir gezeigt? Tut er das immer oder können auch mal andere Stellenwertsysteme verwendet werden? Im letzten Fall musst du schließlich je nach Eingabe anders konvertieren.
Und woher kommt der MsgName? Hast du da eine Tabelle? Oder ist das nur der eingelesene Teilstring? Oder wie, oder was?
Wie läuft's mit Tokenize? Schon mal ausprobiert?
-
Tokenize war die Lösung...
und strtoul XD
Hier mal der TestCodeCString csMsgId,csMsgName; //holt die MsgID und den MsgName vom Dialog m_EditMsgID.GetWindowTextA(csMsgId); m_EditMsgName.GetWindowTextA(csMsgName); CString resToken; int curPos = 0; resToken=csMsgId.Tokenize(_T(","),curPos); m_pstMsgList[6].u32MSG=strtoul(resToken,NULL,10); int i=0; while(resToken != _T("")) { i++; resToken=csMsgId.Tokenize(_T(","),curPos); m_pstMsgList[i].u32MSG; }
Das war ein Akt ...danke für die Hilfe ich muss noch eine Menge lernen :(... Werde das gleiche jetzt für MsgName machen und hoffe das es genauso verläuft
Falls nochmal Probleme auftauchen melde ich mich. Nochmal Vielen DankLG
MOE
-
Also Dein Code wie Du hier Tokenize verwendest scheint mir nicht ganz ausgereift zu sein.
Alleine, dass Du annimst, dass Dein Array beliebig groß ist...
-
Masterofeye schrieb:
m_pstMsgList[i].u32MSG;
Ähm, und diese Zeile hier macht überhaupt nichts. Ist dir das klar?