我使用nsis创建了exe。我使用以下代码比较两个文件。
Function compare
IfFileExists "$INSTDIR\old.properties" 0 filenotfound
FileOpen $0 "$INSTDIR\old.properties" "r"
FileOpen $1 "$INSTDIR\new.properties" "w"
loop:
FileRead $0 $2
MessageBox MB_OK "old $2"
FileRead $1 $3
MessageBox MB_OK "new $3"
IfErrors done
strcmp $3 $2 loop here
here:
FileWrite $1 $2
Goto loop
done:
FileClose $0
FileClose $1
filenotfound:
MessageBox MB_OK "File not found"
FunctionEnd
读取旧属性的第一个文本比较新属性的第一个文本,如果匹配转到两个文件的下一个单词。则应在新属性文件中替换旧属性值。但是如果字符串不匹配则更换新的字符串属性文件不会发生。 怎么解决这个?我做错了什么?
答案 0 :(得分:0)
FileOpen $1 "$INSTDIR\new.properties" "w"
会清除new.properties中的所有内容,如果要保留其内容,请使用"a"
。
我并不完全明白你要做什么,因为“比较文件”通常意味着只读操作,你也在写,但你似乎并没有用新的不同来替换特定的旧行一个...