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

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

Аватара для Dodakaedr

Ветеран


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

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


Цитата K.A.V.:
как вы думаете, почему атрибут не ставится? »
наверное из-за переменной $R0, она берется уже с call DeleteLineFunc? Применил свою переменную, все заработало.
Цитата K.A.V.:
блин, вот скажите мне, для кого писался справочник? »
для реальных новичков! а не для
Цитата K.A.V.:
менее опытные кодеры »
у меня опыта с nsis ноль целых х*р десятых. Да и в программировании где-то также.
Цитата K.A.V.:
будьте добры, прочитайте справочник (да хотя бы самый минимум, те команды, которые используете - пишите правильно, а не наугад подставляйте параметры) »
читаю я ваш справочник, если бы все понимал то и не спрашивал помощи, а так команды строковые для меня вообще темный лес. По поводу "наугад" это вы подумали про переход +1 в комментарии в строке
Код: Выделить весь код
StrCmp $R0 "1" 0 +2 ;если здесь поставить +1 то атрибут ставится постоянно не зависимо от результата проверки
так это я для сравнения написал, хотя наверное это и ни к чему было. Про метки и переходы все ясно. Не могу понять принцип работы строковых команд а именно как и что сравнивать надо. Нашел пример
Скрытый текст
Код: Выделить весь код
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
который похож с моей проблемой, но совместить с вашим кодом не могу.
Цитата K.A.V.:
Мне кажется, этот способ будет очень эффективный, не хотите изучать NSIS - либо мы заставим, либо вы забьёте на NSIS »
главное чтобы у вас терпения хватило

-------
Inno Setup 5 Ultra Unicode


Отправлено: 23:13, 16-05-2015 | #1637