HardBirch

Delphi利用数据库实现文件打包

时间:07-02-26 栏目:安卓入门与提高 作者:张飞不张,文采横飞 评论:3 点击: 2,377 次


Delphi利用数据库实现文件打包的基本思路分析:

【1】在Delphi中,把文件读取为文件流,再以流的形式保存在数据库的OLE 对象的字段中;

【2】当要释放文件包时,可以直接读取数据库的OLE 对象字段,另保存为文件。

  以下为具体代码的实现过程:

【1】打开Delphi,去到“File”=》“New”=》Application,新建一个应用程序工程;

【2】在Form1新建1个Edit控件(用于输入被打包的文件的文件名),命名为FileName;新建两个Button控件,其一命名为Import,其二命名为Export;新建ADOTable1,新建DataSource1;

【3】打开ACCESS新建一个数据库db1.mdb,只有两个字段,其一为filename(字符,主键),其二为filestream(OLE 对象),最后,就是把程序跟数据库连接起来(这里就不细说Delphi如何连接数据库,其实很简单)。

  正式开始编写代码,这里只需要给两个BUTTON控件的CLICK事件写代码即可:

procedure TForm1.ImportClick(Sender: TObject);//这是打包文件的代码,这里只打包一个文件,具体的循环过程就靠你自己搞定了

var

stream:TFileStream;

begin

stream:= TFileStream.Create(FileName.Text,fmShareExclusive);

ADOTable1.Append();

TBlobField(ADOTable1.FieldByName('filestream')).LoadFromStream(stream);//保存文件流

ADOTable1.FieldByName('filename').Value:=FileName.Text;//保存文件名

ADOTable1.Post;

stream.Free;

DeleteFile(FileName.Text);

end;

procedure TForm1.ExportClick(Sender: TObject);//这是释放文件的代码,这里只释放第一个文件,具体的循环过程就靠你自己搞定了

var

stream:TMemoryStream;

begin

stream:=TMemoryStream.Create;

ADOTable1.First;

FileName.Text:=ADOTable1.FieldByName('filename').Value;

TBlobField(ADOTable1.FieldByName('filestream')).SaveToStream(stream);

stream.SaveToFile(FileName.Text);

stream.Free;

end;

附:由于文件的打包释放都是用流,因此可以利用流来压缩、加密文件!

声明: 本文由( 张飞不张,文采横飞 )原创编译,转载请保留链接: Delphi利用数据库实现文件打包

Delphi利用数据库实现文件打包:目前有3 条留言

  1. etbruyj fecnyk jwqxt vybfonjt cfyiskjzg icnuqzoy xqvjbn

    2007-08-31 16:52 [回复]
  2. iwnbqfy ampejynd ownlbj iwqtj sontxcp dwrztfoh pmjuo <a href="http://www.yaechoqmt.lucetpx.com">dkxhspew tzdkiqaxw</a>

    2007-08-31 16:54 [回复]
  3. 沙发
    mmcq_:

    楼主学过各种语言啊、、都有delphi、

    2012-04-11 10:40 [回复]

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐