如何将 TXT 文件作为资源添加到我的 EXE 文件中?
Posted
技术标签:
【中文标题】如何将 TXT 文件作为资源添加到我的 EXE 文件中?【英文标题】:How do I add a TXT file as resource to my EXE file? 【发布时间】:2012-02-15 02:42:39 【问题描述】:我有一个包含大约 10,000 行文本的 TXT 文件。我想在 TMemo 中显示这些行。
但我不想在我的程序中分发那个 TXT 文件。如何使用 stringtable
将其作为资源集成到我的 EXE 文件中,因为这需要为每一行添加一个标识符(因此我必须添加 10000 个标识符)。
_
我有 Delphi XE
【问题讨论】:
stringtable 实际上可以保存整个文本。 @user539...请举个例子 【参考方案1】:我通常为这类资源创建一个RC
文件(基本上是一个文本文件),然后添加行
MyText RCDATA ..\resources\filename.txt
为每个文件/资源放入RC文件。如果 RC 文件是项目的一部分,它将被编译(到res
)并链接到 exe。要使用我通常使用TResourceStream
的资源,即
var ResStream: TResourceStream;
ResStream := TResourceStream.Create(hInstance, 'MyText', RT_RCDATA);
顺便说一句,如果您在 IDE 中创建 RC 文件时没有自动将其添加到项目中,则添加如下行
$R 'myExtraRes.res' 'myExtraRes.RC'
进入项目文件,就在uses
列表之后。
【讨论】:
请注意,现代 Delphi 版本现在在 IDE 中集成了资源管理器,因此您不再需要使用 .rc 文件。 您能否提供一个答案,说明如何在没有 .rc 文件的情况下执行此操作? 以一种方式查看 Remy 的答案。还有一些为这项工作设计的组件,将数据保存到 DFM 中……但是使用 RC 文件有什么问题? 如果您不想使用 IDE 的资源管理器,上述步骤仍然很有效。您必须将.rc
文件添加到Delphi 项目中(如在项目> 添加到项目中,或者在较新的Delphi 版本中将其拖到项目管理器中(大概从2006 年开始))。 (什么?你还没有使用 Delphi 7?)
对于XE4,指令$R 'myExtraRes.res' 'myExtraRes.RC'
在编译/构建EXE时不会将.rc
文件编译成.res
文件,不知道为什么,不得不在命令中使用BCC32
换行...【参考方案2】:
由于您想在TMemo
中显示文本,您可以在设计时将文本直接复制/粘贴到TMemo.Lines
属性编辑器中。该文本将在编译时包含在拥有的 Form/Frame 的 DFM 资源中,并在运行时自动为您加载到 TMemo
。
【讨论】:
我知道,但这不是我想要的。 TMemo 只是作为示例(以及资源字符串是否正确存储的测试)。以上是关于如何将 TXT 文件作为资源添加到我的 EXE 文件中?的主要内容,如果未能解决你的问题,请参考以下文章
C#,我可以将文件从流或其他文件保存到我的单个 exe 中吗?
如何使用非 Maven 项目作为 Maven 模块的资源? [复制]