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

InTheNameOfScience picture InTheNameOfScience · Jan 20, 2012 · Viewed 12.5k times · Source

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

Answer

ain picture ain · Jan 20, 2012

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.