void CReadFileDlg::OnReadtxtButton()
{
char *pszFileName="D:\\myfile.txt";
CStdioFile myFile;
CFileException fileException;
if(myFile.Open(pszFileName,CFile::typeText|CFile::modeReadWrite),&fileException)
{
myFile.SeekToBegin();
CString str;
myFile.ReadString(str);
m_text=str;//m_text是显示的文本框变量
UpdateData(false);
}
else
{
TRACE("Can't open file %s,error=%u\n",pszFileName,fileException.m_cause);
}
myFile.Close();
}
这样只读到txt文件中的第一行,如果要逐行读出来是不是要在OnTimer()中执行?但是放到OnTimer()中还是只显示第一行,哪位高手给指点下,多谢多谢!
5 个解决方案
#1
使用WHILE 循环读取
CString CUtilityEx::ReadFile(CString strFileName)
{
CStdioFile csfFile;
CString strFileString = "";
TRY
{
if(csfFile.Open(strFileName,CFile::modeRead|CFile::shareDenyNone))
{
CString strTemp;
while( csfFile.ReadString(strTemp) )
{
strFileString += strTemp + "\r\n";
}
csfFile.Close();
}
}
CATCH (CMemoryException, e)
{
strFileString = "";
}
END_CATCH
return strFileString;
}
#2
你用if当然读一次啊 要循环读...
#3
能不能说具体点哦
#4
try...catch...不太会用
#5
CStdioFile类里面有ReadString方法的
该方法读取一行自动跳转下一行的
用while循环即可全部读完
该方法读取一行自动跳转下一行的
用while循环即可全部读完
#1
使用WHILE 循环读取
CString CUtilityEx::ReadFile(CString strFileName)
{
CStdioFile csfFile;
CString strFileString = "";
TRY
{
if(csfFile.Open(strFileName,CFile::modeRead|CFile::shareDenyNone))
{
CString strTemp;
while( csfFile.ReadString(strTemp) )
{
strFileString += strTemp + "\r\n";
}
csfFile.Close();
}
}
CATCH (CMemoryException, e)
{
strFileString = "";
}
END_CATCH
return strFileString;
}
#2
你用if当然读一次啊 要循环读...
#3
能不能说具体点哦
#4
try...catch...不太会用
#5
CStdioFile类里面有ReadString方法的
该方法读取一行自动跳转下一行的
用while循环即可全部读完
该方法读取一行自动跳转下一行的
用while循环即可全部读完