`
txf2004
  • 浏览: 6869119 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Delphi 中把文本文件装入资源文件中

阅读更多

怎么把动画文件(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

分享到:
评论

相关推荐

    《Delphi 6灵感设计》范例源代码

    学习单58 域名与IP互换 学习单59 远程控制的实现 学习单60 在网络中复制文件 学习单61 获取整个局域网中的可用资源 学习单62 局域网查询主机 学习单63 实现网络驱动器的映射与断开 学习单64 主机端口扫描 学习单65 ...

    EduStringGrid v2.0

    1、构件注册,在 delphi7 中打开缺省控件安装包或自己创建新的控件安装包,加入单元 Edu_Reg.pas 和资源文件 Edu_Reg.dcr,然后编译注册即可;2、包括所有的源代码;3、TestGrid 目录中是演示程序;4、可以随意使用...

    JAVA上百实例源码以及开源项目

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    JAVA上百实例源码以及开源项目源代码

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义...

    网管教程 从入门到精通软件篇.txt

    CIN:OS/2改变控制文件用于跟踪INI文件中的变化 CLASS:Java类文件 CLP:Windows 剪贴板文件 CLL:Crick Software Clicker文件 CLS:Visual Basic类文件 CMD:Windows NT,OS/2的命令文件;DOS CD/M命令文件;...

    天乙智能图形SmartGraphX部件

    支持动态图形文件装入和显示(超级连接),及声音文件的同步播放。支持网格设置,剪贴板及图形模板操作,支持图形,图元的无级缩放,使图形画面的编辑制作方便快捷。画面的移动可选择通常的滚动条操作方式或对于地理...

    天乙智能图形

    支持动态图形文件装入和显示(超级连接),及声音文件的同步播放。支持网格设置,剪贴板及图形模板操作,支持图形,图元的无级缩放,使图形画面的编辑制作方便快捷。画面的移动可选择通常的滚动条操作方式或对于地理...

    C#微软培训资料

    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...

Global site tag (gtag.js) - Google Analytics