我有一个包含大约10000行文本的TXT文件。我想在TMemo中显示这些行。但我不想将TXT文件分发给我的程序。如何将其作为资源集成到我的EXE文件中,而不使用stringtable {}
,因为它需要每行一个标识符(所以我必须添加10000个标识符)。
_
我使用的是Delphi XE。
我有一个包含大约10000行文本的TXT文件。我想在TMemo中显示这些行。但我不想将TXT文件分发给我的程序。如何将其作为资源集成到我的EXE文件中,而不使用stringtable {}
,因为它需要每行一个标识符(所以我必须添加10000个标识符)。
_
我使用的是Delphi XE。
我通常会为这种资源创建一个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
列表之后。
.rc
文件添加到Delphi项目中(如在项目 > 添加到项目中,或者在更新的Delphi版本中拖放到项目管理器中(自2006年左右开始))。 (什么?您还在使用Delphi 7吗?) - Reversed Engineer{$R 'myExtraRes.res' 'myExtraRes.RC'}
在编译/构建EXE时不会将.rc
文件编译成.res
文件,不确定原因,只能使用命令行中的BCC32
代替... - Edwin Yip因为您想要在一个TMemo
中显示文本,所以您可以直接将文本复制/粘贴到设计时的TMemo.Lines
属性编辑器中。该文本将被包含在拥有表单/框架的 DFM 资源中,并在编译时自动加载到TMemo
中,以供您在运行时使用。