如何定时读文本文件 文本中每行有三个数据(数据间以空格分开)想要一次读取一行 存到数组array中:如:点击按钮开始:第一秒只读第一行,放入array,进行后续操作;第二秒只读第二行替换array中内容,进行后续操作;。如何实现?请指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 读完第一个,sleep()依此类推.. 假设用定时器我用CSdioFile能一次读出一行第一秒 我读出第一行到了第二秒 我怎么跳过第一行 去读第二行 用ontimer。至于如何跳过第一行或第N行,就要看看你的程序是如何写的,假设你用的是CFile类来进行文件的读写,简单的话你可以把这个CFile类对像做为类的一个成员变量,那么用CFile::Open打开后每次在ontimer中引用这个变量去读文件,因为文件指针在你读完一行后就移动到了这一行的行末的,下次再读就是从第二行开始,只要你调用CFile::Close(),那么文件指针就会随着每次Read()的调用顺次读下去,不会出现你说的第二次又从第一行读起的情况。如果你需要每次进入timer都打开文件,读完一行后关闭。那么你可以利用CFile::Seek()这个函数来定位函数指针,它的参数是从文件头到你要读取数据的偏移量,以字节数为单位。而读取数据的CFile::Read()函数的返回值是你读取数据的字节数,在你的问题中就是每一行的字节数,你只要把这些已经读取的字节数纪录下来,每次打开的时候用CFile::Seek()把文件指针定位到你想要读取的那个位置即可。 第二秒只读第二行替换array中内容=========那就没必要用数组了。我用CSdioFile能一次读出一行第一秒 我读出第一行到了第二秒 我怎么跳过第一行 去读第二行========你读出一行,文件指针自动指向下一行了。 void CRockRollView::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default CFileDialog dlg(TRUE); dlg.m_ofn.lpstrFilter="Text Files(*.txt)\0 *txt\0 All Files(*.*)\0 *.*\0\0"; dlg.m_ofn.lpstrDefExt="txt"; dlg.m_ofn.lpstrTitle="读入GPS数据"; if(dlg.DoModal()==IDOK) { CString m_FilePath = dlg.GetPathName(); CStdioFile File; File.Open(m_FilePath,CFile::modeRead); CString FileData; char TempStr1[10]; char TempStr2[10]; char TempStr3[10]; memset(TempStr1,'\0',10); memset(TempStr2,'\0',10); memset(TempStr3,'\0',10); GPSPoint m_tempGPS; long n=1; while (File.ReadString(FileData)) { sscanf(FileData,"%s%s%s",TempStr1,TempStr2,TempStr3); double temp = (double)atof(TempStr1); m_tempGPS.X=temp; temp = (double)atof(TempStr2); m_tempGPS.Y = temp; temp = (double)atof(TempStr3); m_tempGPS.Z =temp; n++; if(n>1) break; }//////////////////////////////////////////这样作能否保证下一次响应ontimer时只读第N+1行,如果不能应该怎样 关于多文档 FindWindowEx 的应用问题! 讨论一下令人厌恶的"呵呵" 怎么样创建一个字符串(长度不定),让它包含指定元素,vc有这样的函数吗 位结构操作的问题 如何处理SQL语句中含有的'符号 关于KDE读卡器的问题。 如何用VC实现锁定键盘快捷键的目的?最好附源码!多谢各位!!! 怎样在列表控件的列头加一个位图? 在VC中怎样生成一个WPJ文件????? 静态成员函数和成员函数有什么具体的区别? 请大家帮我找出这到底出了什么问题?? WSAAsyncSelect为什么会影响其它套接字
依此类推..
我用CSdioFile能一次读出一行
第一秒 我读出第一行
到了第二秒 我怎么跳过第一行 去读第二行
=========
那就没必要用数组了。我用CSdioFile能一次读出一行
第一秒 我读出第一行
到了第二秒 我怎么跳过第一行 去读第二行
========
你读出一行,文件指针自动指向下一行了。
{
// TODO: Add your message handler code here and/or call default
CFileDialog dlg(TRUE);
dlg.m_ofn.lpstrFilter="Text Files(*.txt)\0 *txt\0 All Files(*.*)\0 *.*\0\0";
dlg.m_ofn.lpstrDefExt="txt";
dlg.m_ofn.lpstrTitle="读入GPS数据"; if(dlg.DoModal()==IDOK)
{
CString m_FilePath = dlg.GetPathName();
CStdioFile File;
File.Open(m_FilePath,CFile::modeRead);
CString FileData; char TempStr1[10];
char TempStr2[10];
char TempStr3[10];
memset(TempStr1,'\0',10);
memset(TempStr2,'\0',10);
memset(TempStr3,'\0',10); GPSPoint m_tempGPS;
long n=1;
while (File.ReadString(FileData))
{
sscanf(FileData,"%s%s%s",TempStr1,TempStr2,TempStr3); double temp = (double)atof(TempStr1);
m_tempGPS.X=temp;
temp = (double)atof(TempStr2);
m_tempGPS.Y = temp;
temp = (double)atof(TempStr3);
m_tempGPS.Z =temp; n++;
if(n>1)
break; }//////////////////////////////////////////
这样作能否保证下一次响应ontimer时只读第N+1行,如果不能应该怎样