0
nsis를 사용하여 exe 파일을 만들었습니다. 두 파일을 비교하기 위해 다음 코드를 사용했습니다. 일치하는 새 속성에 file.but 교체해야 모두 files.else 된 속성 값의 다음 단어로 이동하는 경우 문자열 불일치 교체하는 경우NSIS에서 두 파일을 비교하는 방법은 무엇입니까?
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
이전 재산의 첫 번째 텍스트 읽기는 새 속성의 첫 번째 텍스트 비교 새 속성 파일의 문자열이 나타나지 않습니다. 어떻게 해결할 수 있습니까? 내가 뭘 잘못 했니?
고마워요. "a"는 append.i 대신 append.i 대신 값을 대체해야합니다. 문제는 사용자가 자동 모드에서 두 번째로 실행하면 변경된 값 대신 기본값을 사용한다는 것입니다. 따라서 오래된 속성 값을 새로운 속성으로 비교하고 작성해야합니다. – Ami
A는 추가 전용이 아니며 지우기가없는 W입니다 ... – Anders
감사합니다.이 링크는 http://nsis.sourceforge.net/Replacing_Lines_in_a_Text_File을 참조했습니다. – Ami