» Замена строки в текстовом файле.

K.A.V.
www.oszone.net
22.02.2010
Автор: kotkovets
Последнее обновление: 14.12.2010

Бывает, необходимость заменить в любом текстовом файле строку на другое значение, или слово в строке.
Собственно зтот пример решает этот вопрос легко и просто!
${WordReplace} '$R9' 'искомая строка для замены' 'строка замены' "+" '$R9'
Макрос ${LineFind} "читает" текстовый файл построчно.
В переменную $R9 - последовательно сваливаются строки текстового файла.
Макрос ${WordReplace} - заменяет искомую строку на указанную вами.
В этом примере строка Counter-Strike заменяется на www.counter-strike.net
Если нужно, еще заменить строку, пишем еще раз макрос ${WordReplace}
!include "MUI2.nsh"
!include "TextFunc.nsh"
!include "WordFunc.nsh"

!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"

ShowInstDetails show
OutFile Test.exe
Caption "Replace text"

Section
  ${LineFind} "$EXEDIR\file.txt" "" "1:-1" "Replace"
  IfErrors 0 +2
  MessageBox MB_ICONSTOP|MB_OK "Файл не найден!"
SectionEnd

Function Replace
  ${WordReplace} '$R9' 'Counter-Strike' 'www.counter-strike.net' "+" '$R9'
  #здесь пишем еще раз макрос ${WordReplace} при небходимости

  Push $0
FunctionEnd