(タブスペース)文字CString
があるときはいつでも、aを2つに分割しようとしています。"\t"
これは私が使用しているコードです:
CString val = data->str;
CString valTok;
CString accTok;
int indx = 0;
valTok = val.Tokenize(_T("\t"), indx);
++indx;
accTok = val.Tokenize(_T("\t"), indx);
素晴らしいのですが、 の最初の文字accTok
が抜けています。たとえば、いつval = "String1\tString2"
、valTok = "String1"
しかしaccTok ="tring2"
...どうしてですか?
編集:
したがって、hvd のアドバイスに従って、indx
インクリメントを削除し、次のコードを作成しました。
CString val = ((CItemData*)lpDrawItemStruct->itemData)->str; // Was this value causing the problem in the end
CString valTok;
CString accTok;
int indx = 0;
valTok = val.Tokenize(_T("\t"), indx);
accTok = val.Tokenize(_T("\t"), indx); // ASSERT(iStart >= 0) fails
しかし、今、何らかの理由で最初のTokenize
リターン.. !-1
何か案は?
解決済み:
に渡された値に問題がありましたval
:
((CItemData*)lpDrawItemStruct->itemData)->str
これは、場合によっては 2 回目のNULL
呼び出し時にアサーションを引き起こすことがありTokenize
ました。