写程序时,边写程序边写文档。其中一些文档,可以打包进 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);
varRes: TResourceStream;AStream: TStringStream;S: string;
begin//资源文件里面的内容是:MyRes1 Mytext Readme.txtRes := TResourceStream.Create(HInstance, 'MyRes1', PChar('Mytext'));AStream := TStringStream.Create;tryRes.Position := 0;Res.SaveToStream(AStream);AStream.Position := 0;Memo1.Lines.Add(AStream.DataString);finallyRes.Free;AStream.Free;end;
end;

Windows 下编译 EXE 文件时把一个外部 txt 文件编译到 EXE 里面相关推荐

  1. 深入理解:cmd下java命令启动JVM运行class文件时,可以自动识别不同编码编译后的class文件并加之运行

    cmd下java命令启动JVM运行class文件时,可以自动识别不同编码编译后的class文件并加之运行 总结如下: 一:程序源代码以GBK格式保存时: 二:程序以源代码UTF-8无BOM格式保存时: ...

  2. 如果Windows下Quick软件运行时显示无权限打开exe

    如果Windows下Quick软件运行时显示无权限打开exe, 问题在于你的windows进程里已经存在此软件的exe进程了,需要将其杀死,才可以再次运行此软件

  3. vscode 经常弹出:尝试在目标目录创建文件时发生一个错误 重试 跳过这个文件 关闭安装程序

    系列文章目录 文章目录 系列文章目录 前言 一.问题定位? 二.解决办法 1.找到vsCode的安装路径 2.鼠标右键选中Microsoft VS Code文件夹->属性 3. 点击" ...

  4. oracle10g数据库复制,windows 下oracle 10G 数据库移植到 linux平台 (通过文件直接复制方法)...

    windows 下oracle 10G  数据库移植到 linux平台 (通过文件直接复制方法) 最近学习了一下oracle数据库启动原理,于是,就把在windows创建起来做测试的数据库 移植到li ...

  5. 使用Python批量删除windows下特定目录的N天前的旧文件实战:Windows下批量删除旧文件、清除缓存文件、解救C盘、拒绝C盘爆炸

    使用Python批量删除windows下特定目录的N天前的旧文件实战:Windows下批量删除旧文件.清除缓存文件.解救C盘.拒绝C盘爆炸 目录

  6. vsCode 打开界面报错,尝试在目标目录创建文件时发生一个错误

    目录 一.报错提示: 二.解决方案: 一.报错提示: 尝试在目标目录创建文件时发生一个错误:拒绝访问 二.解决方案: 拒绝访问的原因就是权限不足导致. 1.找到上图报错提示的 VS Code 安装目录 ...

  7. windows下dbca删除OracleserviceXXX时遇到错误:dim-00014 Cannot open the Windows NT Service Control Manager

    windows下dbca删除OracleserviceXXX时遇到错误:dim-00014 Cannot open the Windows NT Service Control Manager  O/ ...

  8. Linux1T大文件拷贝,U盘拷贝大于4G的iso文件时提示对于目标文件系统 文件过大解决方法全集...

    [文章导读] U盘在我们日常使用过程中已经在广泛的使用了,很多人都喜欢拷贝文件,u盘传输速度上的是非常快的,但是有不少用户在使用U盘过程中遇到问题,u盘不能拷贝超过4G的大文件,提示" U盘 ...

  9. python合并txt文本_Python实现将目录中TXT合并成一个大TXT文件的方法

    本文实例讲述了Python实现将目录中TXT合并成一个大TXT文件的方法.分享给大家供大家参考.具体如下: 在网上下了一个dota的英雄攻略,TXT格式,每个英雄一个文件,看得疼,就写了一个小东西,合 ...

最新文章

  1. 【.net部署】Server Error in ‘/‘ Application.错误解决方案
  2. 6 redhat 查看rtc时间_Linux EasyStack-Redhat安装Docker
  3. OpenCV使用cv :: CascadeClassifier类检测视频流中的对象的实例(附完整代码)
  4. 如何查看某个employee被assign到了哪个sales organization上
  5. 基于windows平台的命令行软件安装工具Chocolatey的安装
  6. matlab绘制星下点轨迹,MATLAB绘制GPS星下点轨迹图
  7. 虚拟linux无线网卡驱动安装失败,救命1 :Atheros AR5212无线网卡驱动安装失败!!...
  8. 解决MacBook无法读写移动硬盘的问题
  9. 有源蜂鸣器和无源蜂鸣器的区别
  10. 云笔记横向评测:印象笔记、有道云笔记、为知笔记、OneNote、Notion
  11. mybatis 大小写 字符串_Mybatis查询时,区分大小写操作
  12. 手机dlna到linux,linux dlna服务器
  13. Linux的安装(手把手一步一步教学)
  14. 获取中文拼音的首字母,目前为止小菜看到的最简单的方法
  15. C语言错误信息报告函数strerror、perror的使用
  16. scrapy保存图片、音频
  17. 解决 github 报错 Failed to connect to github.com port 443:connection timed out
  18. 帆软报表相关问题汇总
  19. 8.opencv——图像轮廓,霍夫变换
  20. 喊话程序员:Sketch设计作图切图利器,你值得拥有。

热门文章

  1. git合并分支相关操作
  2. 测试设计点-pc端和移动端微信加入群聊
  3. cp -rv linux,Linux基础知识(二)
  4. t检验 显著性检验 significance test
  5. 在线检测计算机硬件信息,JS获取客户端计算机硬件信息与系统信息大全
  6. Excel:一个Excel自动计算公式,一个Excel手动计算?多进程
  7. js json数据去重。json数据如何将相邻的一条数据的重复数据删掉,通过key判断值相等的
  8. 阿里巴巴离职DBA职业生涯总结--吕海波
  9. 纯前端语言编写音乐播放器
  10. 前端工程师 后段工程师_如何像工程师一样思考