Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.019 c
3-6344
Шоломицкий
2003-03-07 19:12
2003.04.03
Соеденение с БД MSACCESS


3-6413
RayRom
2003-03-15 11:07
2003.04.03
Есть ли компонент для постройки SQL запросав из выражений?


3-6377
Shurko
2003-03-13 16:09
2003.04.03
Генерация уникального значения в Oracle


14-6695
NetBreaker666
2003-03-17 23:12
2003.04.03
2Создатель форума


1-6588
Артём К.
2003-03-22 06:38
2003.04.03
Создание пиктограммы для эл-та в ListBoxe