使用nsdialog将文本文件读取到文本框中?NSIS



我是NSIS脚本安装程序的新手。我需要在自定义页面中创建一个支持多行的TextBox。需要读取文本文件并将文本内容设置为TextBox。请在下面找到我的代码块:

StrCpy $3 ""
FileOpen $4 "C:UsersSuryaDesktopInstallerLicense.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个字符,但我的文件包含30000多个字符。

请帮助我阅读大文件,并将内容设置为TextBox。

谢谢

如果使用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

最新更新