知识大全 在VC++应用程序中读取文本数据

Posted 文件

篇首语:欠伸展肢体,吟咏心自愉。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在VC++应用程序中读取文本数据相关的知识,希望对你有一定的参考价值。

在VC++应用程序中读取文本数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

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

  一 前言

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

  二 程序原理

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

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

  A A A A ……An

  那么读取的主体代码是

  CStdioFile File     // 定义一个CStdioFile类变量File

  CString FileData // 定义一个CString 作为一个缓冲区

  /*定义n个临时字符串变量 大小依据实际情况 这里暂设为

  */

  char  TempStr [ ] TempStr [ ]……TempStrN[ ]

  File ReadString(FileData) // 将一行数据读到缓冲区

  /*将该行数据的n个字符读到n个临时字符串变量*/

  sscanf(FileData %s %s %s %s ……%s TempStr TempStr ……TempStrN)

  这种读法的一个好处是对文本格式要求不严 如下面的格式也可以(前面可有未知个空格) A A (两个数据之间也可有未知个空格) A A ……An

  三 编程步骤

  下面我以一个单文档程序来具体说明我的做法 该程序的主要功能是读取文本文件的坐标数据 然后在客户区里用直线将这些坐标连起来 并显示

     启动Visual C++ 生成一个单文档的工程 将该工程命名为ReadCoodinate

   添加一个 读取文本数据 的菜单项

   给视图类添加两个public变量

  CArray<CPoint CPoint> m_PointArray // 用于记录坐标点数据

  int m_PointNum    // 用于记录坐标点个数 在视图类构造函数中初始化为

   给 读取文本数据 添加相应的单击消息响应函数 代码如下

  void CReadCoodinateView OnReaddata()

  

  // TODO Add your mand 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) //读取第一行数据 第一行数据为坐标点数据

  /*定义两个临时字符串 并初始化为 \\ */

  char TempStr [ ]

  char TempStr [ ]

  memset(TempStr \\ )

  memset(TempStr \\ )

  sscanf(FileData %s TempStr )

  m_PointNum = atoi(TempStr )    // 获取坐标点个数

  /*逐行读取坐标数据*/

  for (int i = i<m_PointNum i++)

  

  File ReadString(FileData)

  sscanf(FileData %s %s TempStr TempStr )

  m_PointArray Add(CPoint(atoi(TempStr ) atoi(TempStr ))) //将其存入坐标点数组

  

  CDC *pDC = GetDC() //获取设备环境

  /*根据坐标点绘出直线*/

  for (i = i<m_PointNum i++)

  

  pDC >MoveTo(m_PointArray[i] x m_PointArray[i] y)

  pDC >LineTo(m_PointArray[i+ ] x m_PointArray[i+ ] y)

  

  ReleaseDC(pDC)   //使用完后 释放设备环境

  

  

  程序运行结果的效果图如下

   选取一个txt文件

   单击确定后绘制直线 如下图

  其中示例数据文件的格式是这样的 (第一行为坐标个数 余下的是坐标点数据)

  

    

    

    

    

    

  这个程序的一个优点是对文本数据格式并不严格 你可以把数据编辑成下面形式 但读出来的效果是一样的 (只要x坐标和y坐标中间有一个空格就可以了)

  

          

          

                   

                          

           

  三 小结

cha138/Article/program/net/201311/11932

相关参考

知识大全 在ASP.NET页中读取文本文件

在ASP.NET页中读取文本文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一简介  在现实

知识大全 使用基本类库

  为了更好地理解C#与C++的区别和解决问题方式的变化我们先来看一个比较简单的例子我们将创建一个读取文本文件的类并在屏幕上显示其内容我将把它做成多线程程序以便在从磁盘上读取数据时还可以做其他的工作 

知识大全 java读取文本文件代码

java读取文本文件的方法有很多这个例子主要介绍最简单最常用的BufferedReader类    完整例子如下    packagenetchinaunixbloghzmtext;    impor

知识大全 处理海量数据的经验和技巧[4]

  十使用文本格式进行处理  对一般的数据处理可以使用数据库如果对复杂的数据处理必须借助程序那么在程序操作数据库和程序操作文本之间选择是一定要选择程序操作文本的原因为程序操作文本速度快;对文本进行处理

知识大全 Asp读取文本文件并显示

Asp读取文本文件并显示  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  <>   &

知识大全 java io读取文本文件

  publicclassReadSql  publicstaticvoidreadsql(StringfilePath)throwsException  Stringencoding=gbk;  F

知识大全 使用 PHP 读取文本(TXT)文件 并分页显示

使用PHP读取文本(TXT)文件并分页显示  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!views

知识大全 MySQL数据库接口的VC实现与应用(1)

MySQL数据库接口的VC实现与应用(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  引言 

知识大全 asp入门实例-读取数据库程序

cha138/Article/program/net/201311/14165

知识大全 一个判定文件是否为文本文件的函数

  在用Delphi编程处理文本文件的时候如果要装载的文件比较大你可能会想在文件装载过程中提供一个装载进度的提示那么你就必须自己编写直接通过文件打开/读取函数来装载文件内容的函数  在自己编写文本文件