Delphi 中把文本文件装入资源文件中
2008-04-09 04:21:04来源:互联网 阅读 ()
怎么把动画文件(avi)、位图文件(bitmap)、光标文件(cursor)、图标文件(icon)、声音文件(wave)和字符串等装入 res 资源文件,有关文章已经很多了(参看:http://www.why100000.com/_articles/index.asp?tab=tabDelphi&remark=计算机语言-Delphi)。但是怎么把文本文件也装入资源文件中,资料并不多。
其实我们可以把文本文件作为一种自定义的资源类型加入到资源文件中。做法如下:
(1)资源文件的定义和生成:
编辑资源定义文件 myres.rc,内容如下:
html1 mytext test1.htm
html2 mytext test2.htm
然后,把 myres.rc 加入工程中,会自动在 prj 文件的开头加入语句 {$R ''''myrec.res'''' ''''myrec.rc''''}。将来编译程序时会自动生成资源文件 myrec.res,并把资源加入 exe 文件中。其中 mytext 我我们自定义的资源类型,html1 和 html2 是对应的文本文件 test1.htm 和 test2.htm 的资源标识名字,以后调用资源时就是用这个区别不同的资源。一旦生成了 exe 文件,myrec.rc、myrec.res 和 test1.htm 以及 test2.htm 就没有用处了,不必与 exe 文件一起发布。
(2)资源的调用:
用一段代码来说明(在 Delphi7.0下调试通过),主要牵涉到对内存中流的操作,TResourceStream.Create() 是流的创建函数。可以把资源直接还原成一个文本文件。还可以把流全部读入到 buf 数组里,用了流的 read 方法,然后把 buf 赋值给字符串变量。
procedure TForm1.Button1Click(Sender: TObject);
var
Res: TResourceStream;
buf: array[0..10000] of char;
sHTML: string;
begin
Res := TResourceStream.Create(HInstance, ''''html1'''', PChar(''''mytext''''));
//将资源保存为文件,即还原文件
Res.SaveToFile(''''text1.htm'''');
//还可以进行流操作,取出文本文件的内容到一个字符串变量中
res.Read(buf, res.Size);
sHTML := buf; //将 pchar 类型转换为 string 类型
ShowMessage(sHTML); //对 ShowMessage 函数,ShowMessage(buf) 也正确
Res.Free;
end;
与生成文本文件的资源类似,我们还可以把 mp3、rm、mwv、flash、jpg、gif 等等多媒体资源加入到资源文件中,然后编译到 exe 文件中使用。
-------------------------------------------------------
我的其他文章在我的个人网站上:
“十万个为什么”电脑学习网:http://www.why100000.com
张庆 zhangking@hotmail.com,QQ:9365822
http://why100000.com
http://sogo99.com
2005.7.28
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash