{-------------------------------------------------------------------------------
возвращает числительное прописью
--------------------------------------------------------------------------------}
function GetNumeralStr(Num:dword):string;
const
ss0:array[0..19] of string[50]=('','один','два','три','четыре','пять','шесть','семь',
'восемь','девять','десять','одиннадцать','двенадцать','тринадцать',
'четырнадцать','пятнадцать','шестнадцать','семнадцать',
'восемнадцать','девятнадцать');
ss10:array[0..9] of string[50]=('','','двадцать','тридцать','сорок','пятьдесят','шестьдесят',
'семьдесят','восемьдесят','девяносто');
ss100:array[0..9] of string[50]=('','сто','двести','триста','четыреста',
'пятьсот','щестьсот','семьсот','восемьсот','девятьсот');
ss1000:array[0..19] of string[50]=('тысяч','одна тысяча','две тысячи','три тысячи',
'четыре тысячи','пять тысяч','шесть тысяч','семь тысяч',
'восемь тысяч','девять тысяч','десять тысяч',
'одиннадцать тысяч','двенадцать тысяч','тринадцать тысяч',
'четырнадцать тысяч','пятнадцать тысяч',
'шестнадцать тысяч','семнадцать тысяч',
'восемнадцать тысяч','девятнадцать тысяч');
ssM:array[0..19] of string[50]=('миллионов','один миллион','два миллиона','три миллиона',
'четыре миллиона','пять миллионов','шесть миллионов','семь миллионов',
'восемь миллионов','девять миллионов','десять миллионов',
'одиннадцать миллионов','двенадцать миллионов','тринадцать миллионов',
'четырнадцать миллионов','пятнадцать миллионов',
'шестнадцать миллионов','семнадцать миллионов',
'восемнадцать миллионов','девятнадцать миллионов');
var
Remaind:dword;
begin
Result:='';
//единицы
Remaind:=Num mod 100;
if Remaind <=19 then
Result:=ss0[Remaind]
else
Result:=ss10[Remaind div 10]+' '+ss0[Remaind mod 10];
Num:=Num div 100;
Result:=ss100[Num mod 10]+' '+Result;
Num:=Num div 10;
//тысячи
Remaind:=Num mod 100;
if Num mod 1000 > 0 then
if Remaind <= 19 then
Result:=ss1000[Remaind]+' '+Result
else
Result:=ss10[Remaind div 10]+' '+ss1000[Remaind mod 10]+' '+Result;
Num:=Num div 100;
Result:=ss100[Num mod 10]+' '+Result;
Num:=Num div 10;
//миллионы
Remaind:=Num mod 100;
if Num mod 1000 > 0 then
if Remaind <= 19 then
Result:=ssM[Remaind]+' '+Result
else
Result:=ss10[Remaind div 10]+' '+ssM[Remaind mod 10]+' '+Result;
Num:=Num div 100;
Result:=ss100[Num mod 10]+' '+Result;
end;