2013-03-19 74 views
0

我试图做一个非常简单的任务,即在NSIS中读取文件,然后将这些文件内容写入新文件。将文件内容写入新文件只写入字符串的一半

我的问题:并非所有的文件内容都被写入新文件,只有一半是。发生什么事了?

哎呀NSIS是给了我很多头疼的最近:(

继承人我的代码:

Section 
    #Read file 
    StrCpy $R9 ""    #$R9 will hold the file contents 
    FileOpen $R7 "C:\MyFolder\usermenu.4d" "r" 

    ReadFileLoop: 
     FileRead $R7 $R6 
     StrCpy $R9 "$R9$R6" 
     #DetailPrint "$R6" 
     IfErrors +1 ReadFileLoop 

    FileClose $R7 

    #Write file contents to new file 
    ClearErrors 
    FileOpen $3 "C:\Users\me\Desktop\abc.txt" w 
    FileWrite $3 "$R9" 
    FileClose $3 
SectionEnd 

回答

2

NSIS变量具有固定的大小,如果文件大于限制大一些的是不去适应。你应该写其他文件读取循环的一部分。

当然,如果你想有一个未修改的副本,你可以只使用CopyFiles ...

+0

的LEN gth依赖于NSIS的构建(通常为1024个字符,但是自定义构建可以将其提升为例如8192),你可以通过'$ NSIS_MAX_STRLEN'知道 – Seki 2013-03-19 22:48:36