Текущий архив: 2003.04.03;
Скачать: CL | DM;
ВнизКак перевести цифры в письменный вид Найти похожие ветки
← →
Rule (2003-03-16 20:42) [0]При этом желательно на украинском языке и сохраняя правильные падежи в наименовании валюты ( долларов гривен )
← →
spogi (2003-03-16 21:23) [1]Esli u tebya Table1Filed5 eto cifra, to mojno vot tak:
IntToStr(Table1Field5.Value) - eto uje cifra...
← →
Денис (2003-03-16 21:57) [2]Я таких функций не встречал, придется писать вручную.
← →
alex55 (2003-03-17 00:07) [3]Это называется "сумма прописью". Попробуй так поискать.
← →
PONTIY (2003-03-17 10:44) [4]В коде жестко зашиты рубли, но в случае необходимости название валюты можно вводить в качестве параметра. Уж на украинский перевести не могу, звиняйте батьку :)
function TForm1.Tranclite(Summ: Currency): String;
var
IntSumm: Int64;
StrSumm, TempStr: String;
SubSumm: array[1..3,1..3] of String;
Padezh : Integer;
function ThauthStr(Thauth: String; Rod: Boolean): String;
begin //ThauthTranc
Padezh := 3;
case Thauth[1] of //сотни
"0" : Result := "";
"1" : Result := "сто ";
"2" : Result := "двести ";
"3" : Result := "триста ";
"4" : Result := "четыреста ";
"5" : Result := "пятьсот ";
"6" : Result := "шестьсот ";
"7" : Result := "семьсот ";
"8" : Result := "восемьсот ";
"9" : Result := "девятьсот ";
end; //case
case Thauth[2] of //десятки
"0" : Result := Result + "";
"1" :
begin //case 1
case Thauth[3] of
"0" : Result := Result + "десять ";
"1" : Result := Result + "одиннадцать ";
"2" : Result := Result + "двенадцать ";
"3" : Result := Result + "тринадцать ";
"4" : Result := Result + "четырнадцать ";
"5" : Result := Result + "пятнадцать ";
"6" : Result := Result + "шестнадцать ";
"7" : Result := Result + "семнадцать ";
"8" : Result := Result + "восемнадцать ";
"9" : Result := Result + "девятнадцать ";
end;//case
Padezh := 3;
exit;
end; //case 1
"2" : Result := Result + "двадцать ";
"3" : Result := Result + "тридцать ";
"4" : Result := Result + "сорок ";
"5" : Result := Result + "пятьдесят ";
"6" : Result := Result + "шестьдесят ";
"7" : Result := Result + "семьдесят ";
"8" : Result := Result + "восемьдесят ";
"9" : Result := Result + "девяноста ";
end;//case
case Thauth[3] of //единицы
"0" : Result := Result + "";
"1" :
begin
case Rod of
True : Result := Result + "один ";
False : Result := Result + "одна "
end;
Padezh := 1;
end;
"2" :
begin
case Rod of
True : Result := Result + "два ";
False : Result := Result + "две "
end;
Padezh := 2;
end;
"3" : begin Result := Result + "три "; Padezh := 2; end;
"4" : begin Result := Result + "четыре "; Padezh := 2; end;
"5" : begin Result := Result + "пять "; Padezh := 3; end;
"6" : begin Result := Result + "шесть "; Padezh := 3; end;
"7" : begin Result := Result + "семь "; Padezh := 3; end;
"8" : begin Result := Result + "восемь "; Padezh := 3; end;
"9" : begin Result := Result + "девять "; Padezh := 3; end;
end; //case
end; //ThauthTranc
begin
SubSumm[1,1] := "миллиард "; SubSumm[1,2] := "миллиарда "; SubSumm[1,3] := "миллиардов ";
SubSumm[2,1] := "миллион "; SubSumm[2,2] := "миллиона "; SubSumm[2,3] := "миллионов ";
SubSumm[3,1] := "тысяча "; SubSumm[3,2] := "тысячи "; SubSumm[3,3] := "тысяч ";
SubSumm[4,1] := "рубль "; SubSumm[4,2] := "рубля "; SubSumm[4,3] := "рублей ";
IntSumm := Trunc(Summ);
StrSumm := IntToStr(IntSumm);
if Length(StrSumm) > 12 then
begin
ShowMessage ("слишком большая сумма");
exit;
end;
while Length(StrSumm) < 12 do
StrSumm := "0"+StrSumm;
TempStr := ThauthStr(Copy(StrSumm, 1, 3),True);
if TempStr <> "" then
Result := TempStr + SubSumm[1,Padezh];
TempStr := ThauthStr(Copy(StrSumm, 4, 3),True);
if TempStr <> "" then
Result := Result + TempStr + SubSumm[2,Padezh];
TempStr := ThauthStr(Copy(StrSumm, 7, 3),True);
if TempStr <> "" then
Result := Result + TempStr + SubSumm[3,Padezh];
Result := Result + ThauthStr(Copy(StrSumm, 10, 3),False) + SubSumm[4,Padezh];
end;
← →
OlegE (2003-03-17 10:56) [5]{ Copyright (C) 1998-2000, written by Shkolnik Mike
FIDOnet: 2:463/106.14
E-Mail: mshkolnik@scalabium.com
mshkolnik@yahoo.com
WEB: http://www.scalabium.com
http://www.geocities.com/mshkolnik
tel: 380-/44/-552-10-29
This component allow translate a number into verbal string.
For using you need:
- drop it on form
- define a desirable number in Value property, which you want translate into
verbal string
Also you can define in properties:
- Currency: currency for translation
1. ukrainian UAH
2. ukrainian karbobanets
3. US dollars
4. russian rubles
5. deutsche marks
6. british pounds
7. euro
- Language: language for translation
1. ukrainian
2. russian
3. english
4. german
5. spain
----
Если там не найдешь, могу выслать на E-mail.
← →
aaa3aaa (2003-03-17 14:28) [6]
> OlegE © (17.03.03 10:56)
Кстати а он бесплатный?
Зашли если можешь... на страницах чтото нету...
Страницы: 1 вся ветка
Текущий архив: 2003.04.03;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.008 c