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

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

Аватара для wolkow70

Ветеран


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

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


Кто-нибудь может подсказать как при выполнении функции ReplaceLinesInFile по замене текста в файле сделать так, чтобы временный файл создавался не в папке с инсталлятором, а где-нибудь в другом месте?
Вопрос связан с тем, что инсталлятор нужно записать на диск.

Код: Выделить весь код
Function ReplaceLinesInFile

${LineSum} "$_FindInFile" $_LineNumbers ; Подсчитываем количество строк
strcpy $_CurLineNumber 0
startLineRead:
intop $_CurLineNumber $_CurLineNumber + 1
IntCmp $_CurLineNumber $_LineNumbers 0 0 endFunc ; Если номер текущей строки больше количества строк в файле - поиск завершен
${LineRead} "$_FindInFile" "$_CurLineNumber" $_CurLine ; Читаем строку по номеру текущей строки
${WordFind} '$_CurLine' "$_LineReplace" "E+1{" $R0 ; Ищем в строке нужный текст
StrCmp $R0 "1" startLineRead 0 ; Если в строке присутствует искомый текст, выполняем код ниже
${LineFind} "$_FindInFile" "" "" "Insert_Line" ; Вызываем функцию Insert_Line, которая произведёт замену
goto startLineRead
endFunc:
;
FunctionEnd
Function Insert_Line
StrCmp $R8 "$_CurLineNumber" 0 push
        ${StrRep} $_CurLine "$_CurLine" "$_LineReplace" "$_LineToInsert"
	FileWrite $R4 "$_CurLine"
	StrCpy $0 SkipWrite
	push:
	Push $0
FunctionEnd

-------
Человек человеку - друг, товарищ и волк!


Отправлено: 13:52, 15-04-2013 | #361