2012-01-20 16 views
18

Mam plik TXT zawierający około 10 000 linii tekstu. Chcę wyświetlić te linie w TMemo. Ale nie chcę rozpowszechniać tego pliku TXT w moim programie. Jak mogę zintegrować go z plikiem EXE jako zasobem BEZ używania stringtable {}, ponieważ wymaga to identyfikatora dla każdej linii (więc będę musiał dodać 10000 identyfikatorów).Jak dodać plik TXT do mojego pliku EXE?

_

mam Delphi XE

+0

ciąg może pomieścić cały tekst, w rzeczywistości. – OnTheFly

+0

@ user539 ... proszę podać przykład – Ampere

Odpowiedz

31

zwykle utworzyć plik RC (który jest w zasadzie plik tekstowy) dla tego rodzaju zasobów, a następnie dodać linię jak

MyText RCDATA ..\resources\filename.txt 

dla każdego plik/zasób do pliku RC. Jeśli plik RC jest częścią projektu, zostanie skompilowany (do res) i połączony z plikiem exe. Aby korzystać z zasobów Zwykle używam TResourceStream, tj

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

BTW jeśli plik RC nie został dodany do projektu automatycznie podczas tworzenia go w IDE następnie dodać linię jak

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

do plik projektu, zaraz po liście uses.

+2

Należy pamiętać, że nowoczesne wersje Delphi mają teraz zintegrowany menedżer zasobów w IDE, więc nie trzeba już więcej używać plików .rc. –

+1

Czy możesz podać odpowiedź wskazującą, jak to zrobić bez plików .rc? –

+0

Zobacz odpowiedź Remy'ego na jeden sposób. Istnieją również elementy, które są przeznaczone do tego zadania, te zapisują dane w DFM ... ale jaki jest problem z korzystaniem z pliku RC? – ain

4

Ponieważ chcesz wyświetlić tekst w postaci TMemo, możesz po prostu skopiować/wkleić tekst bezpośrednio do edytora właściwości TMemo.Lines w czasie projektowania. Tekst zostanie dołączony do zasobu DFM formularza/ramki w czasie kompilacji i załadowany automatycznie do Ciebie w czasie wykonywania.

+1

Wiem, ale nie tego chciałem. The TMemo thingy był tylko przykładem (i testem, że ciąg zasobów jest przechowywany poprawnie). – Ampere

Powiązane problemy