【问题标题】:How do I add a TXT file as resource to my EXE file?如何将 TXT 文件作为资源添加到我的 EXE 文件中?
【发布时间】:2012-02-15 02:42:39
【问题描述】:

我有一个包含大约 10,000 行文本的 TXT 文件。我想在 TMemo 中显示这些行。 但我不想在我的程序中分发那个 TXT 文件。如何使用 stringtable {} 将其作为资源集成到我的 EXE 文件中,因为这需要为每一行添加一个标识符(因此我必须添加 10000 个标识符)。

_

我有 Delphi XE

【问题讨论】:

  • stringtable 实际上可以保存整个文本。
  • @user539...请举个例子

标签: delphi delphi-xe embedded-resource


【解决方案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 只是作为示例(以及资源​​字符串是否正确存储的测试)。
猜你喜欢
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
  • 2018-04-10
  • 2017-06-26
  • 2011-06-28
  • 2011-10-26
  • 2014-01-29
  • 2015-03-14
相关资源
最近更新 更多