Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I add a TXT file as resource to my EXE file?

I have a TXT file containing about 10,000 lines of text. I want to display these lines in a TMemo. But I don't want to distribute that TXT file my program. How do I integrate it into my EXE file as a resource WITHIUT using stringtable {} because this requires an identifier for each line (so I will have to add 10000 identifiers).

_

I have Delphi XE

like image 740
Server Overflow Avatar asked Jan 20 '12 14:01

Server Overflow


2 Answers

I usually create an RC file (which is basically an text file) for this kind of resources, then add line like

MyText RCDATA ..\resources\filename.txt

for each file / resource into the RC file. If the RC file is part of the project it will be compiled (to res) and linked into exe. To use the resource I usually use TResourceStream, ie

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

BTW if the RC file wasn't added to the project automatically when you created it in the IDE then add line like

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

into the project file, right after the uses list.

like image 155
ain Avatar answered Oct 19 '22 00:10

ain


Since you want to display the text in a TMemo, you could just copy/paste the text directly into the TMemo.Lines property editor at design-time. The text will be included in the owning Form/Frame's DFM resource at compile-time and loaded into the TMemo automatically at run-time for you.

like image 43
Remy Lebeau Avatar answered Oct 19 '22 00:10

Remy Lebeau