编程类,在VC中用C++编写程序,按行读取txt中的数据,并显示,请各位大神来帮忙啊
C++编写,要求按行读取,且可随意按照“,”和“;”分段,至少要能够实现按行读取数据并显示出来,如果编的好,可以追加悬赏!要读取的文档很大,2M多,现在勉强做到按行读,但...
C++编写,要求按行读取,且可随意按照“,”和“;”分段,至少要能够实现按行读取数据并显示出来,如果编的好,可以追加悬赏!
要读取的文档很大,2M多,现在勉强做到按行读,但是不能读下一行,和全部 展开
要读取的文档很大,2M多,现在勉强做到按行读,但是不能读下一行,和全部 展开
展开全部
这个是一个读文件并显示到编辑框的例子 你看看对你有用处没?
CFileDialog *lpszOpenFile; //定义一个CfileDialog对象
CStdioFile file;
CString filePathName;
int row;
CString result;
//生成一个对话框
lpszOpenFile = new CFileDialog
(TRUE,""陵型,"",OFN_FILEMUSTEXIST |OFN_HIDEREADONLY , "文件类型(*.txt)|*.txt|所有文件(*.*)|*.*|");
if(lpszOpenFile->DoModal() == IDOK )//假如点击对话框确定按钮
{
filePathName = lpszOpenFile->GetPathName();//得到打开文件的路径
SetWindowText(filePathName);//在窗口标题上显示路径
}
if(filePathName == "") return;
if(!file.Open(filePathName,CFile::modeRead))
{
MessageBox("can not open file!");
return;
}
CString strLine,strTemp;
row = 0;
while(file.ReadString(strLine))
{
char *str = strLine.GetBufferSetLength(strLine.GetLength());//申请一个等同文件长度陵汪喊的空间
char *p;
if(strLine!="")
{
for (p=strtok(str,";");p!=NULL;p=strtok(NULL,";"))//i=0;i<5;i++
{
strTemp = p;
//MessageBox(strTemp);
char b[1024];
int i;
strcpy(b,strTemp.GetBuffer(strTemp.GetLength()));
result+=b;
}
row ++;
}
}
delete lpszOpenFile;//释放分配的尺野对话框
m_strText = _T(result);//result
UpdateData(false);
CFileDialog *lpszOpenFile; //定义一个CfileDialog对象
CStdioFile file;
CString filePathName;
int row;
CString result;
//生成一个对话框
lpszOpenFile = new CFileDialog
(TRUE,""陵型,"",OFN_FILEMUSTEXIST |OFN_HIDEREADONLY , "文件类型(*.txt)|*.txt|所有文件(*.*)|*.*|");
if(lpszOpenFile->DoModal() == IDOK )//假如点击对话框确定按钮
{
filePathName = lpszOpenFile->GetPathName();//得到打开文件的路径
SetWindowText(filePathName);//在窗口标题上显示路径
}
if(filePathName == "") return;
if(!file.Open(filePathName,CFile::modeRead))
{
MessageBox("can not open file!");
return;
}
CString strLine,strTemp;
row = 0;
while(file.ReadString(strLine))
{
char *str = strLine.GetBufferSetLength(strLine.GetLength());//申请一个等同文件长度陵汪喊的空间
char *p;
if(strLine!="")
{
for (p=strtok(str,";");p!=NULL;p=strtok(NULL,";"))//i=0;i<5;i++
{
strTemp = p;
//MessageBox(strTemp);
char b[1024];
int i;
strcpy(b,strTemp.GetBuffer(strTemp.GetLength()));
result+=b;
}
row ++;
}
}
delete lpszOpenFile;//释放分配的尺野对话框
m_strText = _T(result);//result
UpdateData(false);
更多追问追答
追问
大神,你这个程序需要在什么工程中编写,是在MFC类的,还是控制台应用程序,还有,文本中的数据有2M多,你这个程序能读取这么多数据吗
追答
哪里是大神 呵呵 就是网上找的 改改就行了 是用MFC写的 2M这个你还要改一下 我这几十K还没啥事 多了就不行了
你看看这个对你有用没?在网上找的
http://zhidao.baidu.com/link?url=2zUdEAkRi5n3HjSSQzvwx0ILc5quXSKtTdAzv7vf1SpkZFc-axvoMCKUhVb4hsuu0o4D2tx47y3BQucQ9Asvg_
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有看懂,请举个例子
追问
这其实是一个2M多的文本,里面有数字数据,要把他们读取出来,并显示到屏幕上,还有后续操作,现在只需要把数据先读出来
追答
等于没说,是不是要把类似“1234,eteeem;5444, 4446“变成4段"1234\neteeem\n5444\n4446\n"
还有什么叫显示到屏幕上,是想用printf么?
要不先把你怎么做的“勉强做到按行读”,贴出来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询