小弟我已通过ReadString逐行独取出来,如何通过CString类如何进行这个文本的拆分,只提取显示出来的数据,空格不要

我已通过ReadString逐行独取出来,怎么通过CString类怎么进行这个文本的拆分,只提取显示出来的数据,空格不要
本帖最后由 VisualEleven 于 2014-08-13 11:12:01 编辑
小弟我已通过ReadString逐行独取出来,如何通过CString类如何进行这个文本的拆分,只提取显示出来的数据,空格不要

void CMDYToPSGDlg::OnButton() 
{
// TODO: Add your control notification handler code here

TCHAR szFilter[] = _T("Mdy文件(*.Mdy)|*.Mdy|");
CFileDialog fileDlg(TRUE, _T("Mdy"), NULL, 0, szFilter, this);   
    CString strFilePath;   
    // 显示打开文件对话框   
    if (IDOK == fileDlg.DoModal())   
    {   
//如果点击了文件对话框上的“打开”按钮,则将选择的文件路径显示到编辑框里   
strFilePath = fileDlg.GetPathName();   
       SetDlgItemText(IDC_File, strFilePath);
   
        
}
CStdioFile file(fileDlg.GetPathName(),CFile::modeReadWrite); 

    CString ss;
int i;
CString str;
CString strTemp;

i = 0;
while(file.ReadString(strTemp))
{
if (i > 5) 
{
break;
}
str = strTemp ;
    i++;

         MessageBox(str);
}  
file.Close();
}


例如第一行拆分出lp存放到数组中,hf存放到数组中,jd存放到数组中以此类推...
能否给出一个完整代码。
------解决方案--------------------
使用
                if (3 != fscanf(fp, "%d %d %d", &b, &g, &r))
                {   // Can't read pixel
                    res = DIB_LOAD_NOFILE_OR_CORRUPT;
                    goto cleanup;
                }

------解决方案--------------------
CStringT::Tokenize

int iStart = 0;
while(1)
{
  CString subItem = szLine.Tokenize(_T(" "), iStart);
  if(subItem.IsEmpty())
    break;
  TRACE(_T("%s\n"), subItem);
}

------解决方案--------------------
用函数AfxExtractSubString很方便 比如
CString str = "123,-456(/t)7.89";

CString output = "";



AfxExtractSubString(output, str, 0, ','); //123

AfxExtractSubString(output, str, 1, ',); //-456

AfxExtractSubString(output, str, 2, '/t'); //7.89

------解决方案--------------------
CString::Tokenize()