[ad_1]
Tengo esta cadena:
T;150;;cha;;22052024;Glo snc;;;;
Tengo que tokenizar pero la primera cadena es T, luego 150 y luego cha,
Pero yo quiero:
T 150 y cadena vacía y no cha… ¿cómo debo hacer?
escribí:
CString strToken = str_line.Tokenize(_T(";"), nTokenPos); strToken = str_line.Tokenize(_T(";"), nTokenPos);
Lo que he probado:
Intenté usar este código pero no lee una cadena vacía.
Solución 1
Quizás eche un vistazo aquí.
Cómo analizar tokens vacíos usando CString::Tokenize()[^]
Solución 2
Una solución sencilla sería escribir su propia función que también reconozca tokens vacíos. Podría verse así:
C++
CString MyTokenize(CString& source, const LPCWSTR& delimeter, int& first) { CString token; int count, end = source.Find(delimeter, first); if (end != -1) { count = end - first; token = source.Mid(first, count); first = end + 1; // next token } else { count = source.GetLength() - first; token = source.Mid(first, count); first = -1; // last token } return token; }
[ad_2]
コメント