PDA

Показать полную графическую версию : [решено] Нужен счетчик считающий в 16-ных числах


hp1nt0
20-12-2016, 01:36
Здравствуйте, я в последнее время работаю с графикой и мне понадобилось
изменять значения в переменной в 16-ричной системе.
например комманды
convert -size 50x50 xc:'#00FF00FF' color_hex_1.png
convert -size 50x50 xc:'#00FF00C0' color_hex_2.png
convert -size 50x50 xc:'#00FF0090' color_hex_3.png
convert -size 50x50 xc:'#00FF0060' color_hex_4.png
convert -size 50x50 xc:'#00FF0030' color_hex_5.png
convert -size 50x50 xc:'#00FF0000' color_hex_6.png
я могу заменить одной просто меняя значение переменной.
SET /A "variable=expression"
как мне сделать что бы считало нужным мне образом?
SET /A "variable=00АА00+00СС22" и так далее?

Iska
20-12-2016, 02:55
hp1nt0, «в уме надо, в уме»™ ;).

В справке же по set написано:
Числовые значения рассматриваются как десятичные, если перед ними не стоит префикс 0x для шестнадцатеричных чисел, и 0 для восьмеричных чисел. Например, числа 0x12, и 022 обозначают десятичное число 18. Обратите внимание на запись восьмеричных числе: 08 и 09 не являются допустимыми числами, так как в восьмеричной системе исчисления цифры 8 и 9 не используются.
Плюс небольшой трюк (работает с ограничениями). Т.е., в Вашем случае:
@echo off
setlocal enableextensions enabledelayedexpansion

set /a iVar = 0x00aa00 + 0x00cc22
call "%comspec%" /c exit /b %iVar%
set sVar=%=exitCode%
echo [%sVar%]

endlocal
exit /b 0

P.S. Возьмите себе за правило не писать латынь:
SET /A "variable=00АА00+00СС22" »
кириллицей.

P.P.S. Переходите на WSH/PoSH, там нет проблем с подобными извращениями, а ImageMagic доступен и как объект Automation.

hp1nt0
20-12-2016, 14:30
Вот пусть железяка и считает в уме. Она умная :)
Я пока формулировал задачу придумал как составить запрос гуглу (ну как обычно)
ведь как известно все уже придумано до нас. Пока остановился на следующем варианте:
с шагом в 1
@echo off
set NUM=0 1 2 3 4 5 6 7 8 9 A B C D E F
for %%x in (%NUM%) do (
for %%y in (%NUM%) do (
color %%x%%y
echo %%x%%y
timeout 1 >nul
)
)

с шагом в 4
@echo off
set NUM=0 1 2 3 4 5 6 7 8 9 A B C D E F
set NUM2=4 8 B F
for %%x in (%NUM%) do (
for %%y in (%NUM2%) do (
color %%x%%y
echo %%x%%y
timeout 1 >nul
)
)
вполне кузяво.
По поводу PoSH вы абсолютно правы но условия сейчас не те углубленно заниматься штудиями.
По поводу объекта Automation, спасибо со временем и до него доберемся я пока с фонтами разбираюсь.
спасибо за помощь.




© OSzone.net 2001-2012