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

Вниз

Цифры в слова   Найти похожие ветки 

 
Merry   (2004-03-03 20:30) [0]

Подскажите, пожалуйста. Если ли в Delphi
готовая функция перевода из цифр в слова,
т.е. 5000 руб. в "пять тысяx рублей"?


 
Vlad ©   (2004-03-03 20:34) [1]


> Merry   (03.03.04 20:30)  


> Если ли в Delphi
> готовая функция перевода из цифр в слова,
> т.е. 5000 руб. в "пять тысяx рублей"?

Нету.


 
Алхимик ©   (2004-03-03 20:56) [2]

Из местной кладовки.
http://www.delphimaster.ru/cgi-bin/download.pl?get=1069401646&n=0


 
Cyborg!   (2004-03-04 08:45) [3]

2Merry - такой готовой функции нет и быть не может!
Не ленитесь написать этот несложный алгоритм сами!


 
Кщд   (2004-03-04 09:09) [4]

Cyborg!   (04.03.04 08:45) [3]
зачем изобретать велосипед, тем паче, что это самокат?
какая в этом познавательная ценность?


 
Palladin ©   (2004-03-04 09:22) [5]


> Кщд   (04.03.04 09:09) [4]

А затем, можно воспользоватся и уже написанным, но не ужели самому не интересно реализовать? Сколько можно опыта при этом получить.


 
Семен Сорокин ©   (2004-03-04 09:49) [6]

Palladin ©   (04.03.04 09:22) [5]
:))
Схватил много экспы и получил Level-up
(С) Две сорванные башни


 
Кщд   (2004-03-04 10:09) [7]

Palladin ©   (04.03.04 09:22) [5]
без претензии на объективность: интересно реализовать, например, какую-нибудь хитрющую сортировку, а писать "парсер" чисел - скучновато...


 
Санек-Ш   (2004-03-04 12:29) [8]

Вот на VB, даже на VBA... В pascal переделать очень просто, даже новичку в Дельфях... теже массивы и строковые операторы... Короче кому надо сделает

Public Function TransInteger(Chislo As String) As String
Dim ChisloStr(4, 20) As String

ChisloStr(1, 0) = ""
ChisloStr(1, 1) = "один"
ChisloStr(1, 2) = "два"
ChisloStr(1, 3) = "три"
ChisloStr(1, 4) = "четыре"
ChisloStr(1, 5) = "пять"
ChisloStr(1, 6) = "шесть"
ChisloStr(1, 7) = "семь"
ChisloStr(1, 8) = "восемь"
ChisloStr(1, 9) = "девять"

ChisloStr(1, 10) = "десять"
ChisloStr(1, 11) = "одинадцать"
ChisloStr(1, 12) = "двенадцать"
ChisloStr(1, 13) = "тринадцать"
ChisloStr(1, 14) = "четырнадцать"
ChisloStr(1, 15) = "пятнадцать"
ChisloStr(1, 16) = "шестнадцать"
ChisloStr(1, 17) = "семнадцать"
ChisloStr(1, 18) = "восемнадцать"
ChisloStr(1, 19) = "девятнадцать"

ChisloStr(2, 1) = "десять"
ChisloStr(2, 2) = "двадцать"
ChisloStr(2, 3) = "тридцать"
ChisloStr(2, 4) = "сорок"
ChisloStr(2, 5) = "пятьдесят"
ChisloStr(2, 6) = "шестьдесят"
ChisloStr(2, 7) = "семьдесят"
ChisloStr(2, 8) = "восемьдесят"
ChisloStr(2, 9) = "девяносто"

ChisloStr(3, 1) = "сто"
ChisloStr(3, 2) = "двести"
ChisloStr(3, 3) = "триста"
ChisloStr(3, 4) = "четыреста"
ChisloStr(3, 5) = "пятьсот"
ChisloStr(3, 6) = "шестьсот"
ChisloStr(3, 7) = "семьсот"
ChisloStr(3, 8) = "восемьсот"
ChisloStr(3, 9) = "девятьсот"

ChisloStr(4, 1) = "одна тысяча"
ChisloStr(4, 2) = "две тысячи"
ChisloStr(4, 3) = "три тысячи"
ChisloStr(4, 4) = "четыре тысячи"
ChisloStr(4, 5) = "пять тысяч"
ChisloStr(4, 6) = "шесть тысяч"
ChisloStr(4, 7) = "семь тысяч"
ChisloStr(4, 8) = "восемь тысяч"
ChisloStr(4, 9) = "девять тысяч"
ChisloStr(4, 10) = "десять тысяч"
ChisloStr(4, 11) = "одинадцать тысяч"
ChisloStr(4, 12) = "двенадцать тысяч"
ChisloStr(4, 13) = "тринадцать тысяч"
ChisloStr(4, 14) = "четырнадцать тысяч"
ChisloStr(4, 15) = "пятнадцать тысяч"
If Int(Chislo) < 16000 Then
If Len(Chislo) > 2 Then
If Int(Right((Chislo), 2)) > 0 And Int(Right((Chislo), 2)) < 20 Then
ед = ""
дес = ChisloStr(1, Int(Right(Chislo, 2)))
Else
ед = ChisloStr(1, Int(Right(Chislo, 1)))
дес = ChisloStr(2, Left(Int(Right(Chislo, 2)), 1))
End If
сто = ChisloStr(3, Int(Left(Right(Chislo, 3), 1)))

End If
If Len(Chislo) = 4 Then тыс = ChisloStr(4, Int(Left(Right(Chislo, 4), 1)))
If Len(Chislo) = 5 Then тыс = ChisloStr(4, Int(Left(Chislo, 2)))
End If
TransInteger = тыс + " " + сто + " " + дес + " " + ед
End Function


 
Санек-Ш   (2004-03-04 12:30) [9]

Вот на VB, даже на VBA... В pascal переделать очень просто, даже новичку в Дельфях... теже массивы и строковые операторы... Короче кому надо сделает

Public Function TransInteger(Chislo As String) As String
Dim ChisloStr(4, 20) As String

ChisloStr(1, 0) = ""
ChisloStr(1, 1) = "один"
ChisloStr(1, 2) = "два"
ChisloStr(1, 3) = "три"
ChisloStr(1, 4) = "четыре"
ChisloStr(1, 5) = "пять"
ChisloStr(1, 6) = "шесть"
ChisloStr(1, 7) = "семь"
ChisloStr(1, 8) = "восемь"
ChisloStr(1, 9) = "девять"

ChisloStr(1, 10) = "десять"
ChisloStr(1, 11) = "одинадцать"
ChisloStr(1, 12) = "двенадцать"
ChisloStr(1, 13) = "тринадцать"
ChisloStr(1, 14) = "четырнадцать"
ChisloStr(1, 15) = "пятнадцать"
ChisloStr(1, 16) = "шестнадцать"
ChisloStr(1, 17) = "семнадцать"
ChisloStr(1, 18) = "восемнадцать"
ChisloStr(1, 19) = "девятнадцать"

ChisloStr(2, 1) = "десять"
ChisloStr(2, 2) = "двадцать"
ChisloStr(2, 3) = "тридцать"
ChisloStr(2, 4) = "сорок"
ChisloStr(2, 5) = "пятьдесят"
ChisloStr(2, 6) = "шестьдесят"
ChisloStr(2, 7) = "семьдесят"
ChisloStr(2, 8) = "восемьдесят"
ChisloStr(2, 9) = "девяносто"

ChisloStr(3, 1) = "сто"
ChisloStr(3, 2) = "двести"
ChisloStr(3, 3) = "триста"
ChisloStr(3, 4) = "четыреста"
ChisloStr(3, 5) = "пятьсот"
ChisloStr(3, 6) = "шестьсот"
ChisloStr(3, 7) = "семьсот"
ChisloStr(3, 8) = "восемьсот"
ChisloStr(3, 9) = "девятьсот"

ChisloStr(4, 1) = "одна тысяча"
ChisloStr(4, 2) = "две тысячи"
ChisloStr(4, 3) = "три тысячи"
ChisloStr(4, 4) = "четыре тысячи"
ChisloStr(4, 5) = "пять тысяч"
ChisloStr(4, 6) = "шесть тысяч"
ChisloStr(4, 7) = "семь тысяч"
ChisloStr(4, 8) = "восемь тысяч"
ChisloStr(4, 9) = "девять тысяч"
ChisloStr(4, 10) = "десять тысяч"
ChisloStr(4, 11) = "одинадцать тысяч"
ChisloStr(4, 12) = "двенадцать тысяч"
ChisloStr(4, 13) = "тринадцать тысяч"
ChisloStr(4, 14) = "четырнадцать тысяч"
ChisloStr(4, 15) = "пятнадцать тысяч"
If Int(Chislo) < 16000 Then
If Len(Chislo) > 2 Then
If Int(Right((Chislo), 2)) > 0 And Int(Right((Chislo), 2)) < 20 Then
ед = ""
дес = ChisloStr(1, Int(Right(Chislo, 2)))
Else
ед = ChisloStr(1, Int(Right(Chislo, 1)))
дес = ChisloStr(2, Left(Int(Right(Chislo, 2)), 1))
End If
сто = ChisloStr(3, Int(Left(Right(Chislo, 3), 1)))

End If
If Len(Chislo) = 4 Then тыс = ChisloStr(4, Int(Left(Right(Chislo, 4), 1)))
If Len(Chislo) = 5 Then тыс = ChisloStr(4, Int(Left(Chislo, 2)))
End If
TransInteger = тыс + " " + сто + " " + дес + " " + ед
End Function


 
Санек-Ш   (2004-03-04 12:32) [10]

Вот на VB, даже на VBA... В pascal переделать очень просто, даже новичку в Дельфях... теже массивы и строковые операторы... Короче кому надо сделает

Public Function TransInteger(Chislo As String) As String
Dim ChisloStr(4, 20) As String

ChisloStr(1, 0) = ""
ChisloStr(1, 1) = "один"
ChisloStr(1, 2) = "два"
ChisloStr(1, 3) = "три"
ChisloStr(1, 4) = "четыре"
ChisloStr(1, 5) = "пять"
ChisloStr(1, 6) = "шесть"
ChisloStr(1, 7) = "семь"
ChisloStr(1, 8) = "восемь"
ChisloStr(1, 9) = "девять"

ChisloStr(1, 10) = "десять"
ChisloStr(1, 11) = "одинадцать"
ChisloStr(1, 12) = "двенадцать"
ChisloStr(1, 13) = "тринадцать"
ChisloStr(1, 14) = "четырнадцать"
ChisloStr(1, 15) = "пятнадцать"
ChisloStr(1, 16) = "шестнадцать"
ChisloStr(1, 17) = "семнадцать"
ChisloStr(1, 18) = "восемнадцать"
ChisloStr(1, 19) = "девятнадцать"

ChisloStr(2, 1) = "десять"
ChisloStr(2, 2) = "двадцать"
ChisloStr(2, 3) = "тридцать"
ChisloStr(2, 4) = "сорок"
ChisloStr(2, 5) = "пятьдесят"
ChisloStr(2, 6) = "шестьдесят"
ChisloStr(2, 7) = "семьдесят"
ChisloStr(2, 8) = "восемьдесят"
ChisloStr(2, 9) = "девяносто"

ChisloStr(3, 1) = "сто"
ChisloStr(3, 2) = "двести"
ChisloStr(3, 3) = "триста"
ChisloStr(3, 4) = "четыреста"
ChisloStr(3, 5) = "пятьсот"
ChisloStr(3, 6) = "шестьсот"
ChisloStr(3, 7) = "семьсот"
ChisloStr(3, 8) = "восемьсот"
ChisloStr(3, 9) = "девятьсот"

ChisloStr(4, 1) = "одна тысяча"
ChisloStr(4, 2) = "две тысячи"
ChisloStr(4, 3) = "три тысячи"
ChisloStr(4, 4) = "четыре тысячи"
ChisloStr(4, 5) = "пять тысяч"
ChisloStr(4, 6) = "шесть тысяч"
ChisloStr(4, 7) = "семь тысяч"
ChisloStr(4, 8) = "восемь тысяч"
ChisloStr(4, 9) = "девять тысяч"
ChisloStr(4, 10) = "десять тысяч"
ChisloStr(4, 11) = "одинадцать тысяч"
ChisloStr(4, 12) = "двенадцать тысяч"
ChisloStr(4, 13) = "тринадцать тысяч"
ChisloStr(4, 14) = "четырнадцать тысяч"
ChisloStr(4, 15) = "пятнадцать тысяч"
If Int(Chislo) < 16000 Then
If Len(Chislo) > 2 Then
If Int(Right((Chislo), 2)) > 0 And Int(Right((Chislo), 2)) < 20 Then
ед = ""
дес = ChisloStr(1, Int(Right(Chislo, 2)))
Else
ед = ChisloStr(1, Int(Right(Chislo, 1)))
дес = ChisloStr(2, Left(Int(Right(Chislo, 2)), 1))
End If
сто = ChisloStr(3, Int(Left(Right(Chislo, 3), 1)))

End If
If Len(Chislo) = 4 Then тыс = ChisloStr(4, Int(Left(Right(Chislo, 4), 1)))
If Len(Chislo) = 5 Then тыс = ChisloStr(4, Int(Left(Chislo, 2)))
End If
TransInteger = тыс + " " + сто + " " + дес + " " + ед
End Function


 
Санек-Ш   (2004-03-04 12:38) [11]

ОГО с эхом получилось :))
Ну тады пардон.


 
Builder ©   (2004-03-04 12:40) [12]

Я не совсем понял, три раза повтор это обязательное устовие написания? :), алгоритм пишется в течении 20 мин, что то новое узнать о Паскале вряд ли получиться, все самое простое. Но это мое сугубо личное мнение. Хотя в Дельфи я очень и очень слаб...


 
Amoeba ©   (2004-03-04 12:52) [13]

В сети легко найти готовые качественно написанные модули.


 
Gennadiy ©   (2004-03-04 13:56) [14]

Такая функция довольно простая могу выслать по почте.


 
TransparentGhost   (2004-03-04 17:31) [15]

Jesli komu nado, mogu i na latishskom vislat" :o)


 
BJValentine ©   (2004-03-04 19:28) [16]

А что делать тем, кому не надо? 8-D


 
DelphiN! ©   (2004-03-05 15:17) [17]

Вот 13 способов реализации этой ф-ии :-)

http://www.delphisyte.ru/Articles/base2/sum_written_out.html

http://www.delphisyte.ru/Articles/base2/sum_written_out2.html

http://www.delphisyte.ru/Articles/base2/sum_written_out3.html

http://www.delphisyte.ru/Articles/base2/sum_written_out4.html

http://www.delphisyte.ru/Articles/base2/sum_written_out5.html

http://www.delphisyte.ru/Articles/base2/sum_written_out6.html

http://www.delphisyte.ru/Articles/base2/sum_written_out7.html

http://www.delphisyte.ru/Articles/base2/sum_written_out8.html

http://www.delphisyte.ru/Articles/base2/sum_written_out9.html

http://www.delphisyte.ru/Articles/base2/sum_written_out10.html

http://www.delphisyte.ru/Articles/base2/sum_written_out11.html

http://www.delphisyte.ru/Articles/base2/sum_written_out12.html

http://www.delphisyte.ru/Articles/base2/sum_written_out13.html


 
TransparentGhost   (2004-03-05 16:30) [18]

komu ne nado, tem tozha vishlju :o)


 
WebErr ©   (2004-03-05 17:38) [19]

Есть несложная функция в Windows 32 API - IntToRusChislo c 15-ю параметрами. Кто самый смелый - вперёд. А вообще сотрите этот флуд - совместите приятное с полезным! Модераторы! :))))



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

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

Наверх




Память: 0.53 MB
Время: 0.021 c
1-1078393346
Aleksandr
2004-03-04 12:42
2004.03.28
Есть средства анализа объектов программы?


1-1078517175
ArtAlex_
2004-03-05 23:06
2004.03.28
Защищенные документы


1-1079069880
scorpi
2004-03-12 08:38
2004.03.28
Определения типа


1-1078922448
From_X
2004-03-10 15:40
2004.03.28
Как найти путь, куда была установлена программа?


3-1077146940
Ve_Ko
2004-02-19 02:29
2004.03.28
Файл-сервер