Tokeniser une chaîne avec une chaîne vide

la programmation


J’ai cette chaîne :

T;150;;cha;;22052024;Glo snc;;;;

Je dois tokeniser mais la première chaîne est T, puis 150 et ensuite cha,
Mais je veux:

T 150 et chaîne vide et pas cha..comment dois-je faire ?

J’ai écrit:

CString strToken = str_line.Tokenize(_T(";"), nTokenPos);
strToken = str_line.Tokenize(_T(";"), nTokenPos);

Ce que j’ai essayé :

J’ai essayé d’utiliser ce code mais il ne lit pas la chaîne vide.

Solution 2

Une solution simple serait d’écrire votre propre fonction qui reconnaît également les jetons vides. Cela pourrait ressembler à ceci :

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;
}

Solution 1

コメント

タイトルとURLをコピーしました