Имя пользователя:
Пароль:
 

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

Аватара для hb860

Идиот


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

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


Вложения
Тип файла: zip NSIS.zip
(1015 байт, 24 просмотров)

Вот чёрт, и правда
Ударил в грязь лицом

Испавил, добавил цикл. Файл создается в памяти в переменной R1 и перезаписывается в локации
Оформил макросом для удобства вызова в любом скрипте - просто вставить макрос и вызвать
Код и файлом во вложении
Код: Выделить весь код
!include "WordFunc.nsh"
!insertmacro WordReplace

Name "Example1"

OutFile "example1.exe"

InstallDir $DESKTOP\Example1

RequestExecutionLevel user

Page directory
Page instfiles




!macro ReplaceInFile FileName FindWhat ReplaceWith
!Define ID ${__LINE__}

StrCpy $R1 ''
FileOpen $0 ${FileName} r
IfErrors done_${ID} 
   
Repeat_${ID}:    
Push $1
Push $R0

FileRead $0 $1
IfErrors Close_${ID}

${WordReplace} $1 "${FindWhat}" "${ReplaceWith}" "+" $R0
StrCpy $R1 $R1$R0
Goto Repeat_${ID}

Close_${ID}:
FileClose $0

FileOpen $0 ${FileName} w
IfErrors done_${ID}
FileWrite $0 $R1
FileClose $0

done_${ID}:

!undef ID
!macroend	



Section "" ;No components page, name is not important

  SetOutPath $INSTDIR
  
  File file.gam

  !InsertMacro ReplaceInFile "$INSTDIR\file.gam" "gamedll $\"dlls\mp.dll$\"" "Строка 1, которую нужно заменить"
  !InsertMacro ReplaceInFile "$INSTDIR\file.gam" "gamedll_linux $\"dlls/cs_i386.so$\"" "Строка 2, которую нужно заменить"

SectionEnd ; end the section
Цитата kotkovets:
A команда WriteIniStr умеет перезаписывать , но работает только с файлами имеющие структуру inf или ini файла »
А это чё такое? Я разве предлагал её использовать?

-------
http://feeds.feedburner.com/Winreviewru.1.gif
Горячие клавиши Windows 8 | Все программы, которые я разработал| Гаджеты для Windows 8

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:38, 20-08-2010 | #622