Параметры:
DEC:=десятичное число
ZeroCount:=Минимальная длинна числа (добовляет нули)
AddZero:=Добавлять нули (true/false)
Код:
function DecTo36(DEC: Cardinal; ZeroCount:Byte; AddZero:Boolean):String;
const
Simbols: string[36] = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var
i:Cardinal;
SimCount,SC:Cardinal;
c36:String;
begin
SC:=0;
SimCount:=DEC;
while SimCount>=36 do
begin
if SC=0 then SimCount:=(DEC div 36)
else SimCount:=SimCount div 36;
SC:=SC+1;
end;
if SC>0 then
begin
for i:=0 to SC do
begin
if i=0 then c36:=Simbols[SimCount+1];
if (i<>0) and (i<>SC) then c36:=c36+Simbols[SimCount];
if i=SC then c36:=c36+Simbols[(DEC mod 36)+1];
end;
end else c36:=Simbols[(DEC mod 36)+1];
if DEC=36 then c36:='10';
if AddZero then
begin
for i:=1 to ZeroCount-Length(c36) do
c36:='0'+c36;
end;
Result:=c36;
end;
Использовать так:
Код:
Edit1.Text:=DecTo36(2150,4,true);