在应用程序中读取文本数据计划
我们通常把数据存诸在txt文件上,但是我们通常要把这些数据取出来并进行处理。下面我将介绍一种在VC++应用程序中读取文本数据的方法。
一。前言
因为经常要处理地质方面的数据。但是很多数据它不是直接存贮在数据库文件(如Access文件等),而是存贮在txt文件。经常有同学问我怎么通过编程读取实现文本文件中的数据。其实存贮在txt文件也有它的好处,不像读取Access文件那样要注册数据源,设置比较麻烦,编写读取程序也比较复杂。
二。程序原理
首先我们知道假如要进行的文件操作只是简单的读写整行的字符串,那么最好使用CStdioFile,用它来进行此类操作非常方便。因此我们便很自然想到:首先我们把文本文件的每行数据读到一个缓冲区,然后使用sscanf把它转化为字符格式。
那么具体该怎么做呢?比如在一个txt文件里每一行数据格式是这样的:
A1 A2 A3 A3 ……An
那么读取的主体代码是:
CStdioFile File; // 定义一个CStdioFile类变量File
CString FileData; // 定义一个CString,作为一个缓冲区
/*定义n个临时字符串变量,大小依据实际情况,这里暂设为10
*/
char TempStr1[10],TempStr2[10]……TempStrN[10];
adString(FileData); // 将一行数据读到缓冲区
/*将该行数据的n个字符读到n个临时字符串变量*/
sscanf(FileData,\"%s %s %s %s ……%s\",TempStr1,TempStr2……TempStrN);
这种读法的一个好处是对文本格式要求不严,如下面的格式也可以(前面可有未知个空格) A1 A2 (两个数据之间也可有未知个空格) A3 A3 ……An
1、“长春”号052C型驱逐舰 三。编程步骤
下面我以一个单文档程序来具体说明我的做法。该程序的主要功能是读取文本文件的坐标数据,然后在客户区里用直线将这些坐标连起来,并显示。
1、 启动Visual C++6.0,生成一个单文档的工程,将该工程命名为ReadCoodinate.
2、 添加一个“读取文本数据”的菜单项。
3、 给视图类添加两个public变量:
CArrayCPoint,CPoint m_PointArray; // 用于记录坐标点数据
int m_PointNum; // 用于记录坐标点个数,在视图类构造函数中初始化为0.
4、 给“读取文本数据”添加相应的单击消息响应函数。代码如下:
void CReadCoodinateView::OnReaddata()
{
// TODO: Add your command handler code here
CFileDialog dlg(TRUE); // 定义一个文件对话框变量
if(Modal()==IDOK)
{
CString m_FilePath = tPathName(); //取得文件路径及文件名
CStdioFile File;
en(m_FilePath,CFile::modeRead); //以读模式打开文本文件
CString FileData; //定义一个CString变量作为缓冲区
adString(FileData);//读取第一行数据,第一行数据为坐标点数据
/*定义两个临时字符串,并初始化为\'\\0\'*/
char TempStr1[10];
char TempStr2[10];
memset(TempStr1,\'\\0\',10);
memset(TempStr2,\'\\0\',10);
sscanf(FileData,\"%s\",TempStr1);
m_PointNum = atoi(TempStr1); // 获取坐标点个数
/*逐行读取坐标数据*/
for (int i = 0;im_PointNum;i++)
{
adString(FileData);
sscanf(FileData,\"%s %s\",TempStr1,TempStr2);
m_d(CPoint(atoi(TempStr1),atoi(TempStr2)));//将其存入坐标点数组
}
CDC *pDC = GetDC(); //获取设备环境;
/*根据坐标点绘出直线*/
for (i = 0;im_PointNum-1;i++)
{
pDC-MoveTo(m_PointArray[i].x,m_PointArray[i].y);
pDC-LineTo(m_PointArray[i+1].x,m_PointArray[i+1].y);
}
ReleaseDC(pDC); //使用完后,释放设备环境
}
}
查看本文来源
关节畸形有什么症状台州治疗白癜风医院费用
郑州包皮包茎
- 上一页:在对话框中用控件显物业
- 下一页:在上使用数据库覆盖
-
卧室不安装双人床,而是直接在地面三脚"它",省空间显宽敞
客厅不重新安装双人床,而是直接在地上上装"它",自治区自由空间纯宽敞 我...
2024-04-24
-
“90后”女孩魏林玉打造“浪漫”志业:将艺术融入生活
魏林玉在艺术创作生活空间。 唐启浩 辨 当中新网四川6同年28日电 题:“90...
2024-04-21
-
太离谱!郭艾伦1年只输1场球,4大赛全胜,刘翔没有理由不给他MVP
北京星期4月27日,丹东男子篮球门之前赢得了季末的CBA总冠军,但是这次的冠...
2024-04-02
-
大S结婚照曝光!具俊晔一本正经哑肩太僵硬,她笑得欢快却太端着
大s和具俊晔的再婚可谓相互合作共赢,尤其是对具俊晔来说,随即通过再婚...
2024-03-09
-
热门 抱怨是最浪费力气且没用的事情。 内心强大,是抗击一切痛苦的前提。 活着比什么都重要,活在当下。
热门 抱怨是最浪费力气且就让的事情。 内心强盛,是抵御一切病痛的前提。...
2024-01-31
-
纪录片客串最主要的三大类型
许多人说明的是,短片主要是用来纪实的,对纪录一个人都有确实性的敦促,...
2024-01-21