PHPやら,C#で言うところの,split()関数ですな
なぜか,VC++,っつうか,MFCには,気の効いた関数なりメソッドなりが,準備されていない件
とある,ソフトでさっくり作ったもんで
このまんま,眠らせておくのもなんなんで
公開しまする
バグってても,ご容赦を,ってことで
C++:
- void split(CString str, CString delim, CStringArray &result)
- {
- result.RemoveAll();
- int indexback = 0;
- CString st;
- int i;
- for(i = 0; i <str.GetLength(); i++)
- {
- if (str.GetAt(i) == delim.GetAt(0))
- {
- if ((i - indexback) == 0)
- {
- result.Add("");
- }
- else
- {
- st = str.Mid(indexback, i - indexback);
- result.Add(st);
- }
- indexback = i + 1;
- }
- }
- if ((i - indexback) != 0)
- {
- st = str.Mid(indexback, i - indexback);
- result.Add(st);
- }
- }
- void func()
- {
- CString st;
- CStringArray aryst;
- st = "1,2,3";
- split(st, _T(","), aryst);
- TRACE(aryst.GetAt(0));
- }
こんな感じで?


