MFC CStringをparse(パース) / Split(分割)してCStringArrayに格納スル方法
直感的にはバシッと一行でやって欲しいぐらいですが、MFCだと難しいです。 以下の記事が良いですね。 How to Parse Empty Tokens using CString::Tokenize() - CodeProject
SimpleTokenizer
と
MyTokenizer
の違いは、 各要素がDelimiterだけでもうまく機能してくれるか否かです。 例えば、与えたデータが、Field1,Field2,,,Field5の場合、 SimpleTokenizerだと、CStringArrayにはField1,Field2,Field5の3要素しか入りません。 MyTokenizerだと、CStringArrayには空の要素も加わり、Field1,Field2,,,Field5の5要素になります。
上記以外のほとんどの記事は、空の要素は無視しちゃってますので、テーブル形式を想像している方はデータが空だった場合に厄介なことになります。
visual c++ - Split functionality for MFC Cstring Class - Stack Overflow
How to split CString into Array ?
ベンチャーブログ: CStringを分割してみる(Split) 上記はビルドが通らなかったので(VS2013) あんまり頑張る気にもなれず…。 CStringArrayをreturnするのは良くない気がします。 使い手側がnewして引数で渡すとかにしないと、リークしそう。