Форум: "Начинающим";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];
ВнизЧисла пропистью Найти похожие ветки
← →
_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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.035 c