用NSIS写一个文件的开头

时间:2013-12-10 12:45:52

标签: nsis

如何使用NSIS写入文件的开头?
我有一个大文本文件,因此无法使用FileRead,因为它看起来有1024个字符的限制 我尝试使用FileSeek从文件的开头设置指针-30,但我想这是不可能的,所以它不起作用。

如果我按原样使用FileWrite,它会写入文件的开头,删除尽可能多的字符  因为它从文件的顶部写。

任何帮助?

2 个答案:

答案 0 :(得分:0)

您可以将此脚本用于write to a specified line number中的Text Files Manipulation Functions。 1024个字符的限制是由默认NSIS构建的最大字符串长度引起的(有special build扩展限制)

答案 1 :(得分:0)

'强力'方法应该有效。

所以你可以这样做(测试过):

FileOpen $0 "SourceFile.txt" r
FileOpen $1 "TargetFile.txt" w

; First add the new text
FileWrite $1 "The Text to add to the start of the file."

; Copy File byte by byte
loop:
  ClearErrors
  FileReadByte $0 $2
  IfErrors exit
  FileWriteByte $1 $2
  Goto loop

exit:
  FileClose $0
  FileClose $1

如果你需要目标文件来代替源文件,你可以在宏MoveFileFolder的帮助下移动它。