Как добавить TXT-файл в качестве ресурса в мой EXE-файл? - PullRequest
20 голосов
/ 20 января 2012

У меня есть TXT-файл, содержащий около 10000 строк текста. Я хочу отобразить эти строки в TMemo. Но я не хочу распространять этот TXT-файл в моей программе. Как мне интегрировать его в мой EXE-файл как ресурс WITHIUT, используя stringtable {}, потому что для этого требуется идентификатор для каждой строки (поэтому мне придется добавить 10000 идентификаторов).

_

У меня есть Delphi XE

Ответы [ 2 ]

38 голосов
/ 20 января 2012

Я обычно создаю файл RC (который в основном является текстовым файлом) для ресурсов такого типа, затем добавляю строку типа

MyText RCDATA ..\resources\filename.txt

для каждого файла / ресурса в файл RC.Если RC-файл является частью проекта, он будет скомпилирован (до res) и связан с exe.Чтобы использовать ресурс, я обычно использую TResourceStream, то есть

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

Кстати, если RC-файл не был автоматически добавлен в проект при его создании в IDE, добавьте строку, например

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

в файл проекта, сразу после списка uses.

4 голосов
/ 21 января 2012

Поскольку вы хотите отобразить текст в TMemo, вы можете просто скопировать / вставить текст непосредственно в редактор свойств TMemo.Lines во время разработки. Текст будет включен в ресурс DFM формы / фрейма во время компиляции и загружен в TMemo автоматически во время выполнения для вас.

...