txt文件里的数据是如这样的:
100
100
100
100
114.12
126.78
136.51
142.86
144.8
142.12
135.48
125.03
每一行就是一个数据,并保存在一个数组里。我自己有尝试写,但不对。请大家用代码指导我一下。
100
100
100
100
114.12
126.78
136.51
142.86
144.8
142.12
135.48
125.03
每一行就是一个数据,并保存在一个数组里。我自己有尝试写,但不对。请大家用代码指导我一下。
{
CString strTemp;
BOOL bResult = TRUE;
while (bResult)
{
bResult = file.ReadString(strTemp);
if (bPushEmptyLine || !strTemp.IsEmpty())
{
vct.push_back(strTemp);
}
} }
catch(CFileException* pe)
{
TRACE(_T("File could not be opened, cause = %d\n"),
pe->m_cause);
pe->Delete();
}
f.Open(pszFileName,CFile::modeRead|CFile::typeText);
CString str;
f.ReadString(str);
...
f.Close();
{
CString FilePath;
CStdioFile file;
CString str;
CStringArray StrAry;
CFileDialog txtFile(TRUE,"*.txt",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"Data Files (*.txt;*.dat)|*.txt; *.dat|All Files (*.*)|*.*||", NULL);
if (txtFile.DoModal()==IDOK)
{
FilePath=txtFile.GetPathName();
BOOL bOpen=file.Open(FilePath,CFile::modeRead); //open measure_sample.txt
if(bOpen) //open success
{
while(file.ReadString(str))
{
CString StrTemp=buff;
StrTemp.TrimRight();
StrAry.Add(StrTemp);
}
}
}
}
我只读到第一行的,不知道如何控制其往下读。
{
CString StrTemp = str.TrimRight();
StrAry.Add(StrTemp);
}
while(file.ReadString(str))
{
StrAry.Add(str.TrimRight());
}
{
str.TrimRight();
StrAry.Add(str);
}
{
str.TrimRight();
MessageBox(str);
StrAry.Add(str);
}
200 200 200
用上面的方法是先弹出一个MessageBox,100 100 100,点确定以后,
再弹出一个MessageBox,200 200 200
那应该是对的,但请问,照我的想法,我是想把数存在StrAry里,那我怎么看里面的数是读取正确了呢?
GetSize 获得元素个数
下标或者GetAt获得元素值
{
CString StrTemp=buff; //buff我找了半天没找到.
StrTemp.TrimRight();
StrAry.Add(StrTemp);
}
for(int i = 0; i<StrAry.GetCount(); i++)
{
strRet+=StrAry[i];
}
MessageBox(strRet);//加到原代码的后面
现在在大家的帮助下,解决了!非常感谢!
但我还有一个小小的问题,不是很明白:
while(file.ReadString(str)) //这不是只读一行吗?但为什么会把每一行的数据都读进来,放在str里?
{
str.TrimRight();
StrAry.Add(str);
}