NSIS объединяет часть из двух строк - PullRequest
2 голосов
/ 01 июня 2011

Я пытаюсь сортировать две строки вместе в NSIS. У меня есть две строки 2.1.3.0 и 0.0.0.27269, и строка, которую я хочу из них создать, - это 2.1.3.27269

Мои попытки пока не сработали, вот что я попробовал:

;;$VERSION      is defined with 2.1.3.0
;;$FILEVERSION2 is defined with 0.0.0.27269

;;debug
DetailPrint ${VERSION}
DetailPrint ${FILEVERSION}

;;attempt, also it doesn't say what the variables $R0-$R2 are after values 
;;copied into them, is that normal?
StrCpy $R0 ${FILEVERSION2} 5 -5
StrCpy $R1 ${VERSION} -2 
StrCpy $R2 $R1"."$R0 

DetailPrint $R2 ;;this doesn't print a value, only prints "$R2"
!define FILEVERSION3 $R2

Любая помощь будет отличной. Hunter

также размещено здесь: http://forums.winamp.com/showthread.php?p=2777308#post2777308

1 Ответ

4 голосов
/ 02 июня 2011

Чтобы объединить переменные в NSIS, необходимо заключить их в кавычки.

;;$VERSION      is defined with 2.1.3.0
;;$FILEVERSION2 is defined with 0.0.0.27269

;;debug
DetailPrint ${VERSION}
DetailPrint ${FILEVERSION}

StrCpy $R0 ${FILEVERSION2} 5 -5
StrCpy $R1 ${VERSION} -2 

; This concatenates the strings together with a dot
StrCpy $R2 "$R1.$R0" 

DetailPrint $R2
!define FILEVERSION3 $R2

Также стоит посмотреть список строковых функций NSIS 1005 *. Некоторые функции, такие как функции для получения первой и последней частей строк, могут сделать ваш код более надежным, чем разбиение строк с использованием жестко закодированных индексов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...