Что нового

Генератор серийного номера

urrya

Новичок
Сообщения
159
Репутация
1
Доброго времени суток уважаемые форумчане.
Просидел половину дня но так и не могу написать скрипт "генератора серийного номера" :stars:
Покажите пжлста (поиск ничего не дал) пример простого скрипта на эту тему.
Надо всего лишь по порядку менять цифры и буквы, после того как уже известно кол-во на котором остановился
прежде.

Например :
a0001
a0002
a0003 ...
a0010
a0011
a0012
a0013 ...
a0100
a0101
a0102
a0103 ...
и т.д.

как ?!
Заранее большое спасибо!
 

SECTOR

Продвинутый
Сообщения
399
Репутация
59
Если я правильно понял задачу, то можно так попробовать...
Код:
For $i = 1 To 100000
	ConsoleWrite(_Next() & @CRLF)
Next

Func _Next()

	Local Static $iChar = 97, $iNumber = -1

	$iNumber += 1

	If $iNumber > 9999 Then
		$iNumber = 0
		$iChar += 1
	EndIf

	If $iChar > 122 Then $iChar = 97

	Return StringFormat("%s%04d",Chr($iChar),$iNumber)

EndFunc
 
Автор
urrya

urrya

Новичок
Сообщения
159
Репутация
1
:laugh:
Да, что то подобное как раз и надо!
Только буквы не отдельно от цифр, они(буквы) должны идти после 9-ки
0-1-2...9-a-b...A-B-C ...



Добавлено:
Сообщение автоматически объединено:

SECTOR
:beer:
 

SECTOR

Продвинутый
Сообщения
399
Репутация
59
Не лучшее решение, но можно так попробовать :smile:

Код:
#include <Array.au3>

Global Const $aChars = StringSplit("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ","",2)

For $i = 1 To 1000
	ConsoleWrite(_Next() & @CRLF)
Next

Func _Next()

	Local Static $aArray[4] = ["0","0","0","0"]
	Local $cChar

	For $n = UBound($aArray)-1 To 0 Step -1
		$cChar = _ArraySearch($aChars,$aArray[$n],0,0,0,3)
		If $cChar + 1 >= UBound($aChars) Then
			$aArray[$n] = "0"
		Else
			$aArray[$n] = $aChars[$cChar+1]
			ExitLoop
		EndIf
	Next

	Return _ArrayToString($aArray,"")

EndFunc
 
Автор
urrya

urrya

Новичок
Сообщения
159
Репутация
1
SECTOR

Ещё раз Большое Спасибо!
:beer:
Всё получается у меня благодаря Вам. :smile:
:IL_AutoIt_1:
 
Верх