Delphi编程读取txt文件数据

  Delphi编程读取txt文件数据,具体操作过程如下:

创新互联建站专注于江永网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供江永营销型网站建设,江永网站制作、江永网页设计、江永网站官网定制、小程序定制开发服务,打造江永网络公司原创品牌,更为您提供江永网站排名全网营销落地服务。

  1.首先要声明一个TextFile类型的的文件指针。如:var MyFile:TEXTFile。

  2.然后使用AssignFile方法将声明的文件指针与外部TXT文件相关联。AssignFile (FileName ) ;FileName 既可以是全路径名,也可以仅是文件名。对于后者系统将在当前目录下查找。

  3.初始化读写有三种方式: Reset为读打开文件并把文件指针移动到文件首;Rewrite为写创建一个新文件;Append为写打开存在的文件并把文件指针定位在文件尾。

  4.读取或写入文本。Readln方法能够读取一行文本,writeln方法能向文件写入一行文本。

  5.***用Closefile方法关闭已打开的文件。

  在这里我们要介绍的就是如何用流来读取TXT文件中的数据,并且在指定显示区域显示出来。首先让我们通过一个简单范例来了解ReadBuffer方法,让我们来读取指定TXT文件的前10个字符。

 
 
 
  1.  procedure TForm1.Button1Click(Sender: TObject);    
  2.    var    
  3.    MyFile:TMemoryStream;    
  4.    Filebuf: array[1..10] of char; //这里声明的是静态数组    
  5.    a:string;    
  6.   Begin    
  7.    If opendialog1.Execute then    
  8.    begin    
  9.    MyFile:=TMemoryStream.Create;//创建流    
  10.    MyFile.LoadFromFile(opendialog1.FileName);    
  11.    MyFile.ReadBuffer(Filebuf,10);//读取TXT文件前10个字符    
  12.    a:= strpas(Filebuf) //将数组转化成为字符串    
  13.    Form1.canvas.Textout(0,0,a); //在显示区域上显示字符串    
  14.    FreeAndNil(MyFile);//释放流    
  15.    end;    
  16.   end;   

  以上范例在窗体Form1上显示的字符串就是打开TXT文本的前10个字符,但是如何得到文本的所有数据呢?这里就需要用到动态数组。动态数组在流中的应用是个难点,因为Delphi中的静态数组是在运行前就已经将内存空间分配好,所以它的变量地址就是数组的***维地址,即没有描述部份,故它的sizeof为1个字节,而动态数组是在运行期间动态分配一个内存块,所以它的变量地址部分需要一个描述部分,故它的sizeof为四个字节,用于存放描述表,所以在用 Readbuffer方法时,需要采用数组的***维地址为起始地址,才不会导致内存溢出。下面这个范例就是用流来读取TXT文件中的全部数据。

 
 
 
  1. procedure TForm1.Button1Click(Sender: TObject);    
  2.    var    
  3.    MyFile:TMemoryStream;    
  4.    Filebuf: array of pchar; //这里声明的是动态数组    
  5.    iLen:Int64;    
  6.   Begin    
  7.    If opendialog1.Execute then    
  8.    begin    
  9.    iLen:=0;    
  10.    MyFile:=TMemoryStream.Create;    
  11.    MyFile.LoadFromFile(opendialog1.FileName);    
  12.    iLen:=MyFile.Size;//获得指定TXT文件的大小    
  13.    SetLength(FileBuf,iLen);//设置动态数组的长度为TXT文件的大小    
  14.    MyFile.ReadBuffer(FileBuf[0],iLen);//读取TXT文件全部数据    
  15.    Form1.canvas.Textout(0,0,string(FileBuf)); //在显示区域上显示字符串;    
  16.    FreeAndNil(MyFile);    
  17.    end;    
  18.   end;      

  以上的范例可在窗体Form1上显示指定TXT文件的全部数据。

  现在让我们来研究一下如何从TXT文本中的指定位置读取一定量的数据,这里用到的函数就是seek(offset:integer,origin:word)integer; 它的参数所代表的意义: offset是偏移量;

  而origin是计算方式 ,下面三个就是origin的值,soFromBeginning是从文件头开始计算,soFromCurrent是从当前位置开始计算,而soFromEnd Offset是从***位置开始计算。

  下面这个范例就是从TXT文本中的指定位置取一定量的数据

 
 
 
  1. procedure TForm1.Button1Click(Sender: TObject);    
  2.    var    
  3.    MyFile:TMemoryStream;    
  4.    Filebuf: array of pchar; //这里声明的是动态数组    
  5.    iLen:Int64;    
  6.   Begin    
  7.    If opendialog1.Execute then    
  8.    begin    
  9.    iLen:=0;    
  10.    MyFile:=TMemoryStream.Create;    
  11.    MyFile.LoadFromFile(opendialog1.FileName);    
  12.    iLen:=MyFile.Size;    
  13.   SetLength(FileBuf,1024);//设置动态数组的长度;    
  14.   Myfile.Seek(1024, soFromBeginning);//从文件头开始计算到1024个字节处    
  15.    MyFile.ReadBuffer(FileBuf[0],1024);//从seek设置的当前位置往后读取1024字节    
  16.    Form1.canvas.Textout(0,0,string(FileBuf)); //在窗体上显示;    
  17.    FreeAndNil(MyFile);    
  18.    end;    
  19.   end;  

  Delphi编程读取txt文件数据到这里就结束啦。

【编辑推荐】

  1. Delphi基础开发技巧
  2. 在Delphi程序中操作注册表
  3. 如何在Delphi中自动录入数据
  4. 基于Delphi的屏幕抓图技术的实现
  5. Delphi开发技术手册

网站名称:Delphi编程读取txt文件数据
转载源于:http://www.shufengxianlan.com/qtweb/news19/549469.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联