Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486

Профиль | Отправить PM | Цитировать


Для участников форума выкладываю скрипт для замены строки в текстовом файле (txt, ini, inf и т.п)
Скрипт был взят отсюда .
Я доработал скрипт,так как в оригинале скрипт создает файл-пустышку,
если указываемого в скрипте файла не существует,
что в некоторых случаях бывает недопустимо.
Собственно доработанный мною скрипт:
Код: Выделить весь код
!include FileFunc.nsh

!define line "Oszone.net" ;Сюда пишем искомую строку для замены
!define line_replace "Oszone.forum.net" ;Сюда пишем строку замены

OutFile "Test.exe"

Section
  ClearErrors
  FileOpen $0 "Путь к файлу" r
  GetTempFileName $R0
  FileOpen $1 $R0 w
 loop:
  FileRead $0 $2
  IfErrors done
  StrCmp $2 '${line}$\r$\n' 0 +2
  StrCpy $2 '${line_replace}$\r$\n'
  StrCmp $2 '${line}' 0 +2
  StrCpy $2 '${line_replace}'
  FileWrite $1 $2
  Goto loop
 done:
  FileClose $0
  FileClose $1
  ${GetFileName} $R0 $R1
  ${Locate} $TEMP "/L=F /S=0:0B /M=$R1" "Del"
  IfFileExists $R0 0 +4
  CopyFiles /SILENT $R0 "Путь к файлу"
  Delete $R0
  Push $0
SectionEnd

Function Del
 Delete $R0
 Push $0
FunctionEnd
Если строка такого вида: "Oszone. "forum" ".net"" и т.п , то пишем как то так:
Код: Выделить весь код
!define line '"Oszone."net""'
!define line_replace '"Oszone. "forum" ".net""'
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:05, 18-08-2010 | #619