在VC++应用程序中读取文本数据

2016-02-19 18:40 40 1 收藏

图老师小编精心整理的在VC++应用程序中读取文本数据希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

【 tulaoshi.com - 编程语言 】

我们通常把数据存诸在txt文件上,但是我们通常要把这些数据取出来并进行处理。下面我将介绍一种在VC++应用程序中读取文本数据的方法。

一.前言

因为经常要处理地质方面的数据。但是很多数据它不是直接存贮在数据库文件(如Access文件等),而是存贮在txt文件。经常有同学问我怎么通过编程读取实现文本文件中的数据。其实存贮在txt文件也有它的好处,不像读取Access文件那样要注册数据源,设置比较麻烦,编写读取程序也比较复杂。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

二.程序原理

首先我们知道假如要进行的文件操作只是简单的读写整行的字符串,那么最好使用CStdioFile,用它来进行此类操作非常方便。因此我们便很自然想到:首先我们把文本文件的每行数据读到一个缓冲区,然后使用sscanf把它转化为字符格式。

那么具体该怎么做呢?比如在一个txt文件里每一行数据格式是这样的:

A1 A2 A3 A3 ......An

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

那么读取的主体代码是:

CStdioFile File;    // 定义一个CStdioFile类变量File
CString FileData; // 定义一个CString,作为一个缓冲区
/*定义n个临时字符串变量,大小依据实际情况,这里暂设为10
*/
char  TempStr1[10],TempStr2[10]......TempStrN[10];
File.ReadString(FileData); // 将一行数据读到缓冲区
/*将该行数据的n个字符读到n个临时字符串变量*/
sscanf(FileData,"%s %s %s %s ......%s",TempStr1,TempStr2......TempStrN);
 
     这种读法的一个好处是对文本格式要求不严,如下面的格式也可以

(前面可有未知个空格) A1 A2 (两个数据之间也可有未知个空格) A3 A3 ......An

三.编程步骤

下面我以一个单文档程序来具体说明我的做法。该程序的主要功能是读取文本文件的坐标数据,然后在客户区里用直线将这些坐标连起来,并显示。
 
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(dlg.DoModal()==IDOK)  
       {
       CString m_FilePath = dlg.GetPathName(); //取得文件路径及文件名
       CStdioFile File;
       File.Open(m_FilePath,CFile::modeRead); //以读模式打开文本文件
   CString FileData;        //定义一个CString变量作为缓冲区
   File.ReadString(FileData);//读取第一行数据,第一行数据为坐标点数据
   /*定义两个临时字符串,并初始化为'

来源:https://www.tulaoshi.com/n/20160219/1618595.html

延伸阅读
标签: Java JAVA基础
Java 平台一直都以其平台无关性自豪。虽然这种无关性有许多好处,但是它也使得编写与硬件交互的 Java 应用程序的过程变得相当复杂。在本文中,研究科学家蒋清野讨论了两个项目,它们通过提供使Java 应用程序可以使用 USB 设备的 API 而使这个过程变得更容易。虽然这两个项目仍然处于萌芽状态,但是它们都显示了良好的前景,并已...
  有些时候,我们需要在一个应用程序中打开另外的应用程序,我这几天就做了这样的事,总结了一些东西,希望可以跟大家一起分享和交流一下。其中有可能有一些东西是错误的或者走了弯路,恳请大家能够给我提意见!另外我这些天一直在学习多线程与多进程,期待找到一些共同进步的人!     闲话少说了,还是回答主题上面来。要在应...
Java 平台一直都以其平台无关性自豪。虽然这种无关性有许多好处,但是它也使得编写与硬件交互的 Java 应用程序的过程变得相当复杂。在本文中,研究科学家蒋清野讨论了两个项目,它们通过提供使Java 应用程序可以使用 USB 设备的 API 而使这个过程变得更轻易。 虽然这两个项目仍然处于萌芽状态,但是它们都显示了良好的前景,并已经成为一些...
首先,你必须手工将WAV文件加入到资源文件.rc 中。 象这样:wave 例子:cool wave c:projectssoundscool.wav 然后,在你需要播放WAV的地方加入下面的函数: bool playresource(lpstr lpname) { bool brtn; lpstr lpres; handle hres; hrsrc hresinfo; hinstance nl=afxgetinstancehandle...
标签: 办公软件
单击“工具”菜单下的“自定义”命令,打开“自定义”对话框,在常用工具栏上“插入超链接”按钮上右击鼠标,在弹出的菜单中执行“分配超链接”下的“打开”命令,打开“分配超链接”对话框,通过“查找范围”右侧的下拉按钮,找到计算器程序文件CALC.EXE(通常位于C:\Windows目录中),“确定”退出,关闭“自定义”对话框。以后需要调用“计算...

经验教程

837

收藏

39
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部