txt中数据:123,456,789,(不止这三个)
在Edit编辑框中显示的效果:
1.123
2.456
3.789
.
.
.
我的程序:
cmd_txt.Open("cmd.txt",CFile::modeRead);
m_yy="";//m_yy是文本框捆绑的cstring变量
int i=1;
CString str_cmd,str1;
while(cmd_txt.ReadString(str1))
{
str1.Insert(0,"1.");
if (str1.Left(1)=="1")
{
i++;
str_cmd.Format("%d.",i);
str1.Replace(",","\r\n"+str_cmd);
}
m_yy += str1+"\r\n";
}
cmd_txt.Close();
UpdateData(FALSE);
但是显示的结果是
1.123
2.456
2.789
请帮小弟改一改程序,指点一下!!!

解决方案 »

  1.   

    cmd_txt.Open("cmd.txt",CFile::modeRead);
    m_yy="";//m_yy是文本框捆绑的cstring变量
    int i=1;
    CString str_cmd,str1;
    while(cmd_txt.ReadString(str1))
    {
    str_cmd.format("%d.",i);
    str_cmd += str1;
    m_yy += str_cmd+"\r\n";
    i++;
    }
    cmd_txt.Close();
    UpdateData(FALSE);
      

  2.   

    我调了一下,
    结果是:1.123,456,789,
    我改了一下程序:
    cmd_txt.Open("cmdtemp.txt",CFile::modeRead);
      m_yy = "";
    int i=1;
    CString str1,str_cmd;
    while(cmd_txt.ReadString(str1))
    {
    str_cmd.Format("%d.",i);
    str_cmd += str1;
    i++;
    }
    str_cmd.Replace(",","\r\n");
    m_yy += str_cmd+"\r\n";
    cmd_txt.Close();
    UpdateData(FALSE);但是文本框显示的结果是:
    1.123
    456
    789
    只能实现每隔遇到逗号就以换行的形式显示到文本框中
      

  3.   

    CString szResult;     //结果字符串
    CString str="123,456,789";  //注意分割完成后,str会发生变化
    char *p=","; //以空格作为分割字符
    char *Temp; 
    Temp=new char[str.GetLenth()+1];
    strcpy(Temp,str);
    str=strtok(Temp,p);
    int n=1;
    while(str!="")
    {
       if(szResult.IsEmpty())
    {
      sszResult+=str.Format("%d.%s",n,str);
    }
    else
    szResult+="\n"+str.Format("%d.%s",n,str);
    str=strtok(NULL,p);
    n++;
    }
    delete Temp;
    AfxMessageBox(szResult);     //看看结果
      

  4.   

    starytx(做人要低调)结果:
    1.(乱码)
    1.(乱码)
    2.2.2
    3.3.3
      

  5.   

    CString szResult;     //结果字符串
    CString str="123,456,789";  //注意分割完成后,str会发生变化
    char *p=","; //以空格作为分割字符
    char *Temp; 
    Temp=new char[str.GetLenth()+1];
    strcpy(Temp,str);
    str=strtok(Temp,p);
    int n=1;
    while(str!="")
    {
    CString s;
       if(szResult.IsEmpty())
    {
      s.Format("%d.%s",n,str);
    }
    else
    s.Format("\n%d.%s",n,str);
    szResult+=s;
    str=strtok(NULL,p);
    n++;
    }
    delete Temp;
    AfxMessageBox(szResult);     //看看结果
      

  6.   

    starytx(做人要低调)
    用你的程序,能正确显示结果
    1.123
    2.456
    3.789
    但是,当我让结果显示到Edit编辑框中时,显示的结果是
    1.1232.4563.789
      

  7.   

    主要是没有了回车键s.Format("\r\n%d.%s",n,str);
      

  8.   

    我把s.Format("\n%d.%s",n,str);
    改成s.Format("\r\n%d.%s",n,str);问题解决了!!感谢两位的帮助!!再次感谢!!