Search code examples
delphidelphi-xeembedded-resource

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


Solution

  • 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.