2012-01-20 4 views
18

私は約10,000行のテキストを含むTXTファイルを持っています。これらの行をTMemoに表示したい。 しかし、私はそのTXTファイルを私のプログラムに配布したくありません。これは、各行の識別子を必要とするので、stringtable {}を使ってリソースWITHIUTとしてEXEファイルにどのように統合するのですか?(私は10000個の識別子を追加する必要があります)EXTファイルにリソースを追加するにはどうすればよいですか?

_

私は通常、それぞれの

MyText RCDATA ..\resources\filename.txt 

のような行を追加し、リソースのこの種のために(基本的にはテキストファイルです)RCファイルを作成するデルファイXE

+0

文字列テーブルは、テキスト全体を保持することができます。 – OnTheFly

+0

@ user539 ...例を挙げてください。 – Ampere

答えて

31

を持っていますファイル/リソースをRCファイルに追加します。 RCファイルがプロジェクトの一部である場合、それはコンパイルされ(res)、EXEにリンクされます。あなたはIDEでそれを作成したときに、RCファイルは自動的にプロジェクトに追加されなかった場合、ところで、私は通常TResourceStreamを使用するリソース、すなわち

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

を使用するには、その後に

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

のような行を追加します。プロジェクトファイル、usesリストの直後。

+2

現代のDelphiのバージョンではIDEに統合されたリソースマネージャが追加されているので、.rcファイルをこれ以上使用する必要はありません。 –

+1

.rcファイルなしでそれを行う方法を示す答えを教えてください。 –

+0

Remyの答えを見てください。その仕事のために設計されたいくつかのコンポーネントもあります。これらのコンポーネントはDFMにデータを保存しますが、RCファイルを使用すると何が問題になりますか? – ain

4

TMemoにテキストを表示したいので、デザイン時にTMemo.Linesプロパティエディタに直接テキストをコピー/貼り付けできます。テキストは、コンパイル時にForm/FrameのDFMリソースに含まれ、実行時に自動的にTMemoにロードされます。

+1

私は知っていますが、これは私が望むものではありません。 TMemoの例は、(そしてリソース文字列が正しく格納されているかどうかのテストの)例としてだけであった。 – Ampere

関連する問題