熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

Delphi的組件讀寫機制

2013-11-23 17:38:36  來源: Delphi編程 

  一流式對象(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 TFomrWriteData (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 TFormReadData(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; //把寫入的
From:http://tw.wingwit.com/Article/program/Delphi/201311/24811.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.