mfc读取edit控件内容,strText,strdata1,strdata2,有数据,data1,data2.数组没有数据,求解释解决思路

mfc读取edit控件内容,strText,strdata1,strdata2,..有数据,data1,data2..数组没有数据,求解释
本帖最后由 moon9091 于 2014-04-10 10:12:16 编辑
CString strdata1,strdata2,strdata3,strdata4;//用于暂时存放截取的列的值
int index;  
int i=0;
int line = 0;//记录行号

double *data1;
data1=new double[ns];//存放第一列结果
double *data2;
data2=new double[ns];//存放第二列结果
double *data3;
data3=new double[ns];//存放第三列结果
double *data4;
data4=new double[ns]; //存放第四列结果
//读取一行内容存放在strLine中
int nLineCount = m_open.GetLineCount();//获得编辑控件的行数

      CString strText, linebuf;
     // Dump every line of text of the edit control.
      for (i=1; t < nLineCount; t++)
  {
       // length of line i:
        int len = m_open.LineLength(m_open.LineIndex(i));//LineLength获得编辑控件中行的长度,LineIndex获得在多行编辑控件中的某行的字符索引
        m_open.GetLine(i, strText.GetBuffer(len), len);//Getline获得编辑控件的一行
        strText.ReleaseBuffer(len);//ReleaseBuffer释放GetBuffer分配的动态内存
      // linebuf.Format(_T("line %d: '%s'\n"), i, strText);
linebuf.Format(_T("%s\n"), strText);
      //AfxMessageBox(linebuf);
        
      //AFXDUMP(linebuf);//输出得每行数据
     
       //获取到第一个tab键的索引
        index = strText.FindOneOf(TEXT(" "));
     //取得第一列数据
    strdata1 =strText.Left(8);
//取到后删除所取内容
strText.Delete(0,index);
//去掉空格
strText.TrimLeft();
index = strText.FindOneOf(TEXT(" "));
//取到后删除所取内容
    strText.Delete(0,index);
//去掉空格
    strText.TrimLeft();

//第二列数据
index = strText.FindOneOf(TEXT(" "));
    strdata2 = strText.Left(8);
strText.Delete(0,index);
strText.TrimLeft();
index = strText.FindOneOf(TEXT(" "));
//取到后删除所取内容
strText.Delete(0,index);
//去掉空格
strText.TrimLeft();

//第三列数据
index = strText.FindOneOf(TEXT(" "));
strdata3 = strText.Left(8);
strText.Delete(0,index);
strText.TrimLeft();
index = strText.FindOneOf(TEXT(" "));
//取到后删除所取内容
strText.Delete(0,index);
//去掉空格
strText.TrimLeft();

//第四列数据,取到第一个空格位置的索引
index = strText.FindOneOf(TEXT("\n"));
strdata4 = strText.Left(8);
strText.Delete(0,index);
strText.TrimLeft();

data1[i] = atof(strdata1)*m;//100.0
data2[i] = atof(strdata2)*m;
data3[i] = atof(strdata3)*m;
data4[i] = atof(strdata4)*m;
}

------解决方案--------------------
你是从 data[1] 开始 存入的
是不是 只检查 data[0]  里面 有没有数据了???

------解决方案--------------------
调试的时候 这句
data1[i] = atof(strdata1)*m;//100.0

中的 strdata1 有 数据么?

前面 我不是 很清楚
你的 ReleaseBuffer() 是不是 太早了?
------解决方案--------------------
还能有这种错误~
嗯~
的确 没有注意到mfc读取edit控件内容,strText,strdata1,strdata2,有数据,data1,data2.数组没有数据,求解释解决思路
------解决方案--------------------
你直接 new 一个 空间 吧~
查了 一下 CString 的 GetBuffer 和 RleaseBuffer 还挺有说道~