hb860
Код:
FileOpen $0
$INSTDIR\file.dat a
IfErrors done
FileRead $0 $1
${WordReplace} $1 'gamedll "dlls\mp.dll"' 'gamedll dlls\newdll.dll' "+*" $R0
FileWrite $0 $R0
FileClose $0
done:
В этом коде не заменяется строка, а дописывается.
команда
FileRead в этом коде читает только первую строку...а вдруг искомая строка не первая?
команда
FileWrite - не умеет перезаписывать строки, а только записывать!
A команда
WriteIniStr умеет перезаписывать , но работает только с файлами имеющие структуру
inf или
ini файла
Код:
!include "WordFunc.nsh"
!insertmacro WordReplace
OutFile Test.exe
Section ""
WriteINIStr $EXEDIR\Test.ini Path Directory "%programfiles%"
ReadINIStr $R0 $EXEDIR\Test.ini Path Directory
${WordReplace} $R0 "%programfiles%" "$PROGRAMFILES" "+" $R1
WriteINIStr $EXEDIR\Test.ini Path Directory $R1
SectionEnd
Так, что сей способ
не пригоден!