Strings, oder doch lieber den Strick????????
-
hallo!
Sorry, dass ich schon wieder ne Frage poste.....Ich lese Daten von ner Chipkarte aus, die vom Hersteller aus erst in nem
Buffer (sprich array) abgelegt werden.
Wenn ich das ganze in nen CString speichere und in nem Static ausgebe, sieht das
dann so aus:Name
Vorname
Personalnummer
RDSýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý <- weil restlicher speicher in hex FFFF belegt
isich möchte quasi die 3 wichtigen datensätze in nen eigenen string haben.
also nach "\n" suchen welches die einzelnen Einträge trennt und dann das
entsprechende Stück des Strings in einen anderen kopieren.weiss jemand wie es geht????
wenn ja ->
Danke schonmal fürs durchlesen, bis bald
-
Aloha,
suche doch mal nach dem Zeichen
int pos = my_string.find('\n');
Es könnte auch sein, daß Du mit ner Zeichenfolge arbeiten mußt, da das Gerät vielleicht ein "\r\n" wirft.
Laß Dir einfach mal die beiden Zeichen nach dem ersten Namen anzeigen, welchen wert diese haben. Danach suchst Du einfach.Und dann mit CString.Left(), CString.Mid() etc. schnippeln....
Grüße
BOA
-
dank dir für die schnelle antwort.
ich habe mal folgendes versucht:void CStempeluhrView::Ontest() { // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen CString command; char buff[1024]; command = "Card,MemReadStatus"; m_CardServer.SCardCommand(command, NULL, 0, buff, sizeof(buff)); CString text2 = buff; int pos = text2.Find('i'); char zwischenspeicher[2]; CString text3=_itoa(pos, zwischenspeicher,2); m_name.SetWindowText(text3); }
Compilieren und builden, linken -> ohne probs
aber sobald die Routine durchgeführt wird -> CrashIch hab Ihn nach 'i' suchen lassen, da das 100%-ig vorkommt
-
sorry, mein Fehler
hatte den falschen kartenleserbefehl erwischt
es geht
du hattest recht, er setzt noch ein anderes Zeichen vor \nfettes merci nochmal
-
Aloha,
immer gerne...
Grüße
BOA