一流式對象(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:=TFilestream
create(
c:\Test
txt
fmopenwrite);//創建文件流對象
Mywriter:=TWriter
create(FileStream
); //把Mywriter和FileStream聯系起來
Mywriter
writelistbegin; //寫入列表開始標志
For i:=
to Memo
lines
count
do
Mywriter
writestring(memo
lines[i]); //保存Memo組件中文本信息到文件中
Mywriter
writelistend; //寫入列表結束標志
FileStream
seek(
sofrombeginning); //文件流對象指針移到流起始位置
Mywriter
free; //釋放Mywriter對象
FileStream
free; //釋放FileStream對象
End;
b)讀文件
procedure TForm
ReadData(Sender: TObject);
Var
FileStream:TFilestream;
Myreader:TReader;
Begin
FileStream:=TFilestream
create(
c:\Test
txt
fmopenread);
Myreader:=TRreader
create(FileStream
); //把Myreader和FileStream聯系起來
Myreader
readlistbegin; //把寫入的列表開始標志讀出來
Memo
lines
clear; //清除Memo
組件的文本內容
While not myreader
endoflist do //注意TReader的一個方法:endoflist
Begin
Memo
lines
add(myreader
readstring); //把讀出的字符串加到Memo
組件中
End;
Myreader
readlistend; //把寫入的
From:http://tw.wingwit.com/Article/program/Delphi/201311/24811.html