![]() |
|
|
#1
|
||||
|
||||
![]() В моей программе используются индентификаторы (у каждого объекта в списке он свой). Индентификатор должен быть в пределах от 0000 до ZZZZ. Используется алфавит по порядку: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ. Вот и сама задача: к одной строке прибавить и получить другую строку. Пример:
0000 -> 000A -> 000B -> ... -> 000Z -> 001A -> ... -> ZZZZ и тд. Здесь HEX не поможет, используются буквы всего алфавита. Не очень-то понятно объяснил. Если кто-то видел похожий исходник, или он у кого-то есть, поделитесь. ![]() Заранее спасибо! Последний раз редактировалось GriLab, 14.06.2011 в 13:10. |
#2
|
||||
|
||||
![]() Используй 36-ричную систему.
(26+10=36). Хотя если тебе нужно просто прибавить 1 - можно подумать как оптимизировать. |
#3
|
||||
|
||||
![]() Вот уже не первый раз встречаю подобную систему создания идентификатора и каждый раз подобная система страшно неудобна, тормознута и плохо дружит с тем-же SQL. Возникает простой вопрос: Нахрена козе баян? Чем вас не устраивают нормальные числовые идентификаторы?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
||||
|
||||
![]() Да, и в правду.
Алгоритм-то я знаю, а вот как его реализовать не получается. |
#5
|
|||
|
|||
![]() А разве не так?
0000 -> 0001 -> ... -> 0009 -> ... -> 9999 -> 000A -> 000B -> ... -> 000Z -> 001A -> ... -> ZZZZ |
#6
|
||||
|
||||
![]() вот так чтоль?
Код:
program Project1; {$APPTYPE CONSOLE} uses SysUtils; const alphabet: array [1..36] of char = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L', 'M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); var q,w,e,r:integer; begin try for q := Low(alphabet) to High(alphabet) do for w := Low(alphabet) to High(alphabet) do for e := Low(alphabet) to High(alphabet) do for r := Low(alphabet) to High(alphabet) do Write(alphabet[q]+alphabet[w]+alphabet[e]+alphabet[r]+'->'); Readln; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |