0

我是 NSIS 脚本安装程序的新手。我需要在自定义页面中创建一个支持多行的文本框。需要读取一个文本文件并将文本内容设置为 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(两次)将插入符号移到末尾,然后使用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 回答