1

Тема: AHK: Задание ширины счётчика

Как добавить к коду настройку ширины счётчика, чтобы, когда цифр меньше указанного количества цифр, в начале к ним добавлялись бы нули (для фиксированной ширины)? Например, для ширины в четыре цифры:

0001
0002
0003
...


;КоличествоЦифр := 4
n := 20
step := 1
  
loop % 1 + n // step 
{
     nn := (A_index - 1) * step "`n" 
     MsgBox % nn
}

2 (изменено: serzh82saratov, 2020-01-23 23:06:42)

Re: AHK: Задание ширины счётчика


КоличествоЦифр := 10 
nn := 1
loop % КоличествоЦифр  
{
	nn *= 10
	str .= Format("{:0" КоличествоЦифр "}", nn - 1) "`n" 
}
MsgBox % str 
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.32.00 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

3

Re: AHK: Задание ширины счётчика

К своему примеру не удалось применить, сложновато).

4

Re: AHK: Задание ширины счётчика

Я не понял про что ваш пример.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.32.00 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

5

Re: AHK: Задание ширины счётчика

Приведённый у меня код последовательно выводит "0", "1", "2", "3" и т.д., до 20-ти. А требуется, чтобы для указанной ширины счётчика (например: для 4-х) выводилось "0000", "0001", "0002", "0003" ... "0010", "0011" и т.д. И чтобы это сохранялось, если шаг (n := 20) будет увеличен 9999-ти.

6

Re: AHK: Задание ширины счётчика

По-моему, вы запутались в определениях. Под шагом обычно понимается число, которое нужно прибавить к текущему значению, чтобы получить следующее. Чтобы добавить нули до определённой ширины числа, делается, как показано выше.

width := 4

Loop
   MsgBox, % Format("{:0" . width . "u}", A_Index)
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg
+ DD

7

Re: AHK: Задание ширины счётчика

Так и есть, «n := 20» — это у меня не шаг, а максимальное число. Всё равно совместить не удается.

8

Re: AHK: Задание ширины счётчика

Если начинать всегда от 1, то так:

width := 4
step := 2
max := 20

while (value := 1 + (A_Index - 1)*step) <= max
   MsgBox, % Format("{:0" . width . "u}", value)
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg
+ DD