Что нового

Как лучше обработать счетчик вводимый пользователем?

inx

Знающий
Сообщения
43
Репутация
12
От пользователя получаем два значения счетчика - "От" и "До", количество цифр в счетчике (берется из "До")
Они могут быть "От 1 до 9" - тут все просто.
А могут быть "От 001 до 020" или "От 1 до 90", в этом случае счетчик должен быть всегда 3/2-значным.
Значение счетчика разумеется в виде String на выходе нужно.
Пока сделал так:
Код:
$counter_FROM_string = "1"
$counter_TO_string = "200"
$counter_length = StringLen($counter_TO_string)
For $counter = Number($counter_FROM_string) To Number($counter_TO_string)
	If StringLen(String($counter)) < $counter_length Then
		$counter_string = "000" & $counter
		If StringLen(String($counter_string)) > $counter_length Then
			$counter_string = "00" & $counter
			If StringLen($counter_string) > $counter_length Then
				$counter_string = "0" & $counter
			EndIf
		EndIf
	Else
		$counter_string = $counter
	EndIf
	ConsoleWrite("Текущее значение: " & $counter_string & @CRLF)
Next


Оно вроде работает, но можно ли сделать как-нибудь более правильно и подходяще для всех x-значных вариантов, чтобы не плодить If'ы?
Вдруг есть некая UDF(от, до, что делать)...
 

InnI

AutoIT Гуру
Сообщения
4,982
Репутация
1,460
Код:
For $i = 0 To 100
  ConsoleWrite(StringFormat("%.3d", $i) & @CRLF)
Next
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
inx,
Код:
Local $sCounter_FROM_string = '1', $sCounter_TO_string = '200', $iLen

$iLen = StringLen($sCounter_TO_string)

For $i = Number($sCounter_FROM_string) To Number($sCounter_TO_string)
	ConsoleWrite($i & @TAB & StringFormat('%0' & $iLen & 'd', $i) & @LF)
Next
 
Верх