0

nsis を使用して exe を作成しました。次のコードを使用して 2 つのファイルを比較しました。

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

古いプロパティの最初のテキストを読み取り、一致する場合は新しいプロパティの最初のテキストを比較し、両方のファイルの次の単語に移動します。それ以外の場合、古いプロパティ値は新しいプロパティ ファイルで置き換えられる必要があります。ただし、文字列が一致しない場合、新しいプロパティ ファイルの文字列は置き換えられません起こる。これを解決するには?私は何を間違えたのですか?

4

1 に答える 1

0

FileOpen $1 "$INSTDIR\new.properties" "w"new.properties 内のすべてを消去します"a"。その内容を保持したい場合に使用します。

「ファイルの比較」は通常読み取り専用操作を意味するため、あなたが何をしようとしているのかを完全には理解していません. .

于 2013-03-27T16:40:57.013 に答える