رمزية سلسلة مع سلسلة فارغة


لدي هذه السلسلة:

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

لا بد لي من رمزية ولكن السلسلة الأولى هي T، ثم 150 ثم تشا،
لكن انا اريد:

T 150 وسلسلة فارغة وليس تشا.. كيف يجب أن أفعل؟

كتبت:

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

ما حاولت:

حاولت استخدام هذا الرمز لكنه لا يقرأ سلسلة فارغة ..

الحل 1

الحل 2

الحل البسيط هو كتابة وظيفتك الخاصة التي تتعرف أيضًا على الرموز الفارغة. يمكن أن يبدو مثل هذا:

سي ++
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;
}

コメント

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