DELPHIWindows 下编译 EXE 文件时把一个外部 txt 文件编译到 EXE 里面


本文整理自网络,侵删。

 
写程序时,边写程序边写文档。其中一些文档,可以打包进 EXE 里面,然后作为程序的帮助或说明。之所以不用外部文件,是因为发布一个 EXE 就足够。新版的 EXE 自包含新版的说明,避免EXE更新了,说明文档没跟上的麻烦。

一个 .rc 资源文件,是一个文本文件。这个文本文件的内容,就是要打包引用的文本文件的文件名。
可以在一个工程里,添加一个资源文件。添加完以后,工程的 uses 前面,就会出现对这个资源文件的引用: {$R 'MyTest.res' 'MyTest.rc'}


然后,程序里就可以使用这个 MyTest.res 资源了。


因此,在代码阶段,所有东西都是可编辑的文本 -- 代码,资源文件,外部 txt 文件。


1. 自己写一个内容为程序使用方法的文本文件;
2. 在 delphi 工程里,添加一个资源文件(.rc 文件)。这是一个文本文件。给这个 .rc 文件一个名字。添加完成后,工程文件里面会自动出现对这个资源文件的引用代码。
3. 在 .rc 文件里面,添加对文本文件的引用。引用方式是写一行文本,如下:
MyRes1 Mytext Readme.txt


上述文本,第一个 MyRes1 是资源名称;第二个 Mytext 是这个资源的类型(自定义的),第三个 Readme.txt 是要引用的文本文件的文件名。


到这里,编译程序的时候,这个 Readme.txt 的内容会被编译到 EXE 里面,作为一个资源存在。


程序里,需要这个资源的地方,使用以下方式调用:


procedure TForm2.Button1Click(Sender: TObject);
var
  Res: TResourceStream;
  AStream: TStringStream;
  S: string;
begin
  //资源文件里面的内容是:MyRes1 Mytext Readme.txt
  Res := TResourceStream.Create(HInstance, 'MyRes1', PChar('Mytext'));
  AStream := TStringStream.Create;
  try
    Res.Position := 0;
    Res.SaveToStream(AStream);


    AStream.Position := 0;
    Memo1.Lines.Add(AStream.DataString);
  finally
    Res.Free;
    AStream.Free;
  end;
end;

相关阅读 >>

Delphi concat 连接两个或多个字符串为一个字符串

Delphi xe android将域名转化为ip

Delphi 字符串处理

Delphi fdmemtable1内存表字段排序

Delphi实现类似嵌入桌面的效果

Delphi 获取cpuid的函数

Delphi 中 image 控件加载bmp、jpg、gif、png等图片的办法

Delphi 验证guid的函数

Delphi xe中泛型数组的使用范例

Delphi 中 findwindow 和 findwindowex 的语法和用法

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...