0

私は NSIS スクリプト インストーラーを初めて使用します。カスタムページで、複数行をサポートする TextBox を作成する必要があります。テキスト ファイルを読み取り、テキスト コンテンツを TextBox に設定する必要があります。以下の私のコードブロックを見つけてください:

StrCpy $3 ""
FileOpen $4 "C:\Users\Surya\Desktop\Installer\License.txt" r
loop:
FileRead $4 $1

StrCpy $3 "$3$1" ; append the line and copy it to another variable
IfErrors +1 loop   
FileClose $4

${NSD_SetText} $ctrlTextBox "$3"

上記のコードは 8119 文字しか読み取れませんが、私のファイルには 30,000 文字以上が含まれています。

大きなファイルを読み込んで、コンテンツを TextBox に設定するのを手伝ってください。

ありがとうございました

4

1 に答える 1

2

EM_SETSEL (2 回) を使用してキャレットを最後に移動し、EM_REPLACESELを使用してテキストを追加すると、その時点で (ループ内で) テキスト ボックスに少しのテキストを入力できます。

代わりにリッチ エディット ボックスを使用して、私がずっと前に書いたコードを使用できる場合は、フォーラムのスレッドをここで見つけることができます...

編集:

開始時にテキストボックスが空である限り、キャレットを処理する必要はありません。

function custcreate
nsDialogs::Create 1018
Pop $0

nsDialogs::CreateControl ${__NSD_Text_CLASS} ${__NSD_Text_STYLE}|${ES_MULTILINE}|${WS_VSCROLL}|${ES_READONLY} ${__NSD_Text_EXSTYLE} 0 0 100% 50u ""
Pop $0

FileOpen $4 ${__FILE__}" r
loop:
    FileRead $4 $1
    SendMessage $0 ${EM_REPLACESEL} 0 "STR:$1"
    IfErrors +1 loop
FileClose $4

nsDialogs::Show
functionend
于 2012-07-16T01:07:34.717 に答える