2012-01-20 70 views
18

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

_

我有德尔福XE

+0

stringtable可以容纳一个完整的文本,其实。 – OnTheFly

+0

@ user539 ...请提供示例 – Ampere

回答

31

我通常会创建一个RC文件(这基本上是一个文本文件),这方面的资源,再加入这样一行

MyText RCDATA ..\resources\filename.txt 

每个文件/资源​​添加到RC文件中。如果RC文件是该项目的一部分,它将被编译(到res)并链接到exe。要使用我通常使用TResourceStream资源,即

var ResStream: TResourceStream; 
ResStream := TResourceStream.Create(hInstance, 'MyText', RT_RCDATA); 

顺便说一句,如果当你在IDE中创建它,然后添加这样一行

{$R 'myExtraRes.res' 'myExtraRes.RC'} 

到RC文件未添加到项目中自动项目文件,紧接着uses列表。

+2

请注意,现代Delphi版本现在在IDE中具有集成的资源管理器,因此您不再需要使用.rc文件。 –

+1

你能否提供一个答案,指出如何在没有.rc文件的情况下做到这一点? –

+0

查看雷米的单程回答。还有一些专门为这项工作设计的组件,那些将数据保存到DFM中......但是使用RC文件有什么问题? – ain

4

由于您想在TMemo中显示文本,因此您可以在设计时直接将文本复制/粘贴到TMemo.Lines属性编辑器中。该文本将在编译时包含在拥有的Form/Frame的DFM资源中,并在运行时自动加载到TMemo中。

+1

我知道,但这不是我想要的。 TMemo只是作为一个例子(以及测试资源字符串是否正确存储)。 – Ampere

相关问题