Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.11;
Скачать: CL | DM;

Вниз

Числа пропистью   Найти похожие ветки 

 
_ozzy_   (2007-01-19 14:18) [0]

Поделитесь, кто знает, как перевести числа в слова (числа прописью).


 
Сергей М. ©   (2007-01-19 14:32) [1]

Гугль подаст.

http://www.google.ru/search?q=Delphi+%D1%87%D0%B8%D1%81%D0%BB%D0%BE+%D0%BF%D1%80%D0%BE%D0%BF%D0%B8%D1%81%D1%8C%D1%8E&ie=utf-8&oe=utf-8&rls=org.mozilla:ru:official&client=firefox-a


 
Array ©   (2007-01-19 14:43) [2]

http://narod.yandex.ru/cgi-bin/yandsearch?user=delphiworld&text=%F1%F3%EC%EC%E0+%EF%F0%EE%EF%E8%F1%FC%FE&where=2


 
NiGGa ©   (2007-01-19 14:55) [3]

Мы что-то такое используем

res := Sum2TxtFunction(120.566, "рубасов", "капеек", true);
res = "Сто двадцять  рубасов 56 капеек";
res := Sum2TxtFunction(120.566, "рубасов", "капеек", false);
res = "Сто двадцять  рубасов";

function Sum2TxtFunction(lSumDbl: extended; lCurrStr, lFractStr: string; lFractBln: boolean): string;
 function CSpace(C: Char; Count: Integer): String;
 var
   i: Integer;
 begin
   for i := 0 to Count - 1 do
     Result := Result + C;
 end;
var
 tmpDecSep: Char;
 lsResult: String;

 tis, mln, mlrd, dig, dig_a: array[0..19] of string;
 ten, hun: array[0..9] of string;

 CurrValue: Integer;
 Fraction: String;
 TmStr: String;
 s, i: integer;
 DIGIT, RADIX: String;
begin
 // тысячи
 tis[0] := "тисяч ";
 tis[1] := "тисяча ";
 tis[2] := "тисячi ";
 tis[3] := "тисячi ";
 tis[4] := "тисячi ";
 tis[5] := "тисяч ";
 tis[6] := "тисяч ";
 tis[7] := "тисяч ";
 tis[8] := "тисяч ";
 tis[9] := "тисяч ";
 tis[10] := "тисяч ";
 tis[11] := "тисяч ";
 tis[12] := "тисяч ";
 tis[13] := "тисяч ";
 tis[14] := "тисяч ";
 tis[15] := "тисяч ";
 tis[16] := "тисяч ";
 tis[17] := "тисяч ";
 tis[18] := "тисяч ";
 tis[19] := "тисяч ";
 // мiльйон
 mln[0] := "мiльйонiв ";
 mln[1] := "мiльйон ";
 mln[2] := "мiльйона ";
 mln[3] := "мiльйона ";
 mln[4] := "мiльйона ";
 mln[5] := "мiльйонiв ";
 mln[6] := "мiльйонiв ";
 mln[7] := "мiльйонiв ";
 mln[8] := "мiльйонiв ";
 mln[9] := "мiльйонiв ";
 mln[10] := "мiльйонiв ";
 mln[11] := "мiльйонiв ";
 mln[12] := "мiльйонiв ";
 mln[13] := "мiльйонiв ";
 mln[14] := "мiльйонiв ";
 mln[15] := "мiльйонiв ";
 mln[16] := "мiльйонiв ";
 mln[17] := "мiльйонiв ";
 mln[18] := "мiльйонiв ";
 mln[19] := "мiльйонiв ";
 // мiльярдiв
 mlrd[0] := " ";
 mlrd[1] := "мiльярд ";
 mlrd[2] := "мiльярда ";
 mlrd[3] := "мiльярда ";
 mlrd[4] := "мiльярда ";
 mlrd[5] := "мiльярдiв ";
 mlrd[6] := "мiльярдiв ";
 mlrd[7] := "мiльярдiв ";
 mlrd[8] := "мiльярдiв ";
 mlrd[9] := "мiльярдiв ";
 mlrd[10] := "мiльярдiв ";
 mlrd[11] := "мiльярдiв ";
 mlrd[12] := "мiльярдiв ";
 mlrd[13] := "мiльярдiв ";
 mlrd[14] := "мiльярдiв ";
 mlrd[15] := "мiльярдiв ";
 mlrd[16] := "мiльярдiв ";
 mlrd[17] := "мiльярдiв ";
 mlrd[18] := "мiльярдiв ";
 mlrd[19] := "мiльярдiв ";
 // цифры
 dig[0] := "";
 dig[1] := "один ";
 dig[2] := "два ";
 dig[3] := "три ";
 dig[4] := "чотири ";
 dig[5] := "п""ять ";
 dig[6] := "шiсть ";
 dig[7] := "сiм ";
 dig[8] := "вiсiм ";
 dig[9] := "дев""ять ";
 dig[10] := "десять ";
 dig[11] := "одиннадцять ";
 dig[12] := "дванадцять ";
 dig[13] := "тринадцять ";
 dig[14] := "чотирнадцять ";
 dig[15] := "п""ятнадцять ";
 dig[16] := "шiстьнадцять ";
 dig[17] := "сiмнадцять ";
 dig[18] := "вiсiмнадцять ";
 dig[19] := "дев""ятнадцять ";
 // цифры
 dig_a[0] := "";
 dig_a[1] := "одна ";
 dig_a[2] := "двi ";
 dig_a[3] := "три ";
 dig_a[4] := "чотири ";
 dig_a[5] := "п""ять ";
 dig_a[6] := "шiсть ";
 dig_a[7] := "сiм ";
 dig_a[8] := "вiсiм ";
 dig_a[9] := "дев""ять ";
 dig_a[10] := "десять ";
 dig_a[11] := "одиннадцять ";
 dig_a[12] := "дванадцять ";
 dig_a[13] := "тринадцять ";
 dig_a[14] := "чотирнадцять ";
 dig_a[15] := "п""ятнадцять ";
 dig_a[16] := "шiстьнадцять ";
 dig_a[17] := "сiмнадцять ";
 dig_a[18] := "вiсiмнадцять ";
 dig_a[19] := "дев""ятнадцять ";
 // десятки
 ten[0] := "";
 ten[1] := "";
 ten[2] := "двадцять ";
 ten[3] := "тридцять ";
 ten[4] := "сорок ";
 ten[5] := "п""ятдесят ";
 ten[6] := "шiстдесят ";
 ten[7] := "сiмдесят ";
 ten[8] := "вiсiмдесят ";
 ten[9] := "дев""яносто ";
 // сотни
 hun[0] := "";
 hun[1] := "сто ";
 hun[2] := "двiстi ";
 hun[3] := "триста ";
 hun[4] := "чотириста ";
 hun[5] := "п""ятьсот ";
 hun[6] := "шiстьсот ";
 hun[7] := "сiмсот ";
 hun[8] := "вiсiмсот ";
 hun[9] := "дев""ятьсот ";

 Fraction := "";
 i := 0;
 lSumDbl := ABS(lSumDbl);
 // отделить дробную часть
 CurrValue := trunc(lSumDbl);
 tmpDecSep := DecimalSeparator;
 DecimalSeparator := ".";
 try
   TmStr := FloatToStr(lSumDbl);
 finally
   DecimalSeparator := tmpDecSep;
 end;
 if (Pos(".", TmStr) > 0) then
   Fraction := Copy(TmStr, Pos(".", TmStr) + 1, 2);
 Fraction := Fraction + CSpace("0", 2 - Length(Fraction));
 lsResult := "";
 if Currvalue = 0 then
   lsResult := "Нуль "
 else
   while CurrValue > 0 do
     begin
     if (CurrValue mod 1000) <> 0 then
       begin
       s := CurrValue mod 100;
       if S < 20 then
         begin
         if i <= 1 then
           DIGIT := dig_a[s]
         else
           DIGIT := dig[s];
         case i of
           0: RADIX := "";
           1: RADIX := tis[s];
           2: RADIX := mln[s];
           3: RADIX := mlrd[s];
         end;
         lsResult := DIGIT + RADIX + lsResult;
       end
       else
         begin
         if i <= 1 then
           DIGIT := dig_a[s mod 10]
         else
           DIGIT := dig[s mod 10];
         case i of
           0: RADIX := "";
           1: RADIX := tis[s mod 10];
           2: RADIX := mln[s mod 10];
           3: RADIX := mlrd[s mod 10];
         end;
         lsResult := ten[trunc(s/10)] + DIGIT + RADIX + lsResult;
       end;
       CurrValue := trunc(CurrValue/100);
       s := CurrValue mod 10;
       lsResult := hun[s] + lsResult;
       CurrValue := trunc(CurrValue/10);
       i := i + 1;
     end
     else
       begin
       CurrValue := trunc(CurrValue/1000);
       i := i + 1;
     end;
   end;
 lsResult := lsResult + " " + lCurrStr;
 if lFractBln then
   lsResult := lsResult + " " + Fraction + " " + lFractStr;

 lsResult := AnsiUpperCase(Copy(lsResult, 1, 1)) + Copy(lsResult, 2, 254);
 Trim(lsResult);

 Result := lsResult;
end;


 
Piroxyline ©   (2007-01-20 12:18) [4]

А в FAQ заглянуть не судьба?
http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988619349&n=19


 
Amoeba ©   (2007-01-22 17:42) [5]

Выбирай на вкус:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1028
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=805
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1105
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=17
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1106



Страницы: 1 вся ветка

Текущий архив: 2007.02.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
2-1169652134
ANB
2007-01-24 18:22
2007.02.11
Передать параметр макросу в Word


1-1166275254
antonioxxx
2006-12-16 16:20
2007.02.11
Получение координаты в TChart


2-1169540039
cvg
2007-01-23 11:13
2007.02.11
откуда взять описание типа TidIcmpClient?


15-1169120417
Gorlum
2007-01-18 14:40
2007.02.11
Список богов


15-1169252464
lookin
2007-01-20 03:21
2007.02.11
Группа StereoTotal - кто слушал?