一流式对象(Stream)和读写对象(Filer)的介绍
在面向对象程序设计中对象式数据管理占有很重要的地位在Delphi中对对象式数据管理的支持方式是其一大特色
Delphi是一个面向对象的可视化设计与面向对象的语言相结合的集成开发环境Delphi的核心是组件组件是对象的一种Delphi应用程序完全是由组件来构造的因此开发高性能的Delphi应用程序必然会涉及对象式数据管理技术
对象式数据管理包括两方面的内容
● 用对象来管理数据
● 对各类数据对象(包括对象和组件)的管理
Delphi将对象式数据管理类归结为Stream对象(Stream)和Filer对象(Filer)并将它们应用于可视组件类库(VCL)的方方面面它们提供了丰富的在内存外存和Windows资源中管理对象的功能
Stream对象又称流式对象是TStreamTHandleStreamTFileStreamTMemoryStreamTResourceStream和TBlobStream等的统称它们分别代表了在各种媒介上存储数据的能力它们将各种数据类型(包括对象和组件) 在内存外存和数据库字段中的管理操作抽象为对象方法并且充分利用了面向对象技术的优点应用程序可以相当容易地在各种Stream对象中拷贝数据
读写对象(Filer)包括TFiler对象TReader对象和TWriter对象TFiler对象是文件读写的基础对象在应用程序中使用的主要是TReader和TWriterTReader和TWriter对象都直接从TFiler对象继承TFiler对象定义了Filer对象的基本属性和方法
Filer对象主要完成两大功能
● 存取窗体文件和窗体文件中的组件
● 提供数据缓沖加快数据读写操作
为了对流式对象和读写对象有一个感性的认识先来看一个例子
a)写文件
procedure TFomr
WriteData (Sender: TObject); r;
Var
FileStream:TFilestream;
Mywriter:TWriter;
i: integer
Begin
FileStream:=TFilestreamcreate(c:\Testtxtfmopenwrite);//创建文件流对象
Mywriter:=TWritercreate(FileStream);//把Mywriter和FileStream联系起来
Mywriter writelistbegin; //写入列表开始标志
For i:= to Memolinescount do
Mywriterwritestring(memolines[i]);//保存Memo组件中文本信息到文件中
Mywriterwritelistend; //写入列表结束标志
FileStreamseek(sofrombeginning);//文件流对象指针移到流起始位置
Mywriterfree; //释放Mywriter对象
FileStreamfree; //释放FileStream对象
End;
b)读文件
procedure TForm
ReadData(Sender: TObject);
Var
FileStream:TFilestream;
Myreader:TReader;
Begin
FileStream:=TFilestreamcreate(c:\Testtxtfmopenread);
Myreader:=TRreadercreate(FileStream); //把Myreader和FileStream联系起来
Myreaderreadlistbegin; //把写入的列表开始标志读出来
Memolinesclear; //清除Memo组件的文本内容
While not myreaderendoflist do//注意TReader的一个方法:endoflist
Begin
Memolinesadd(myreaderreadstring); //把读出的字符串加到Memo组件中
End;
Myreaderreadlistend;//把写入的