Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:

Error. Page cannot be displayed. Please contact your service provider for more details. (26)


Перевод денежных сумм из цифp в 'прописью'

Поиск:
Код
Option Explicit

Function Сумма_прописью(s As Currency) As String
   
   Dim triad(4) As Integer
   Dim numb1(0 To 19) As String
   Dim numb2(0 To 9) As String
   Dim numb3(0 To 9) As String
   Dim ss As Currency
   Dim txt As String
   Dim n As Integer
   Dim i As Integer
   
   If s = 0 Then
       Сумма_прописью = ""
       Exit Function
   End If
   
   ss = s
   triad(1) = ss - Int(ss / 1000) * 1000
   ss = Int(ss / 1000)
   triad(2) = ss - Int(ss / 1000) * 1000
   ss = Int(ss / 1000)
   triad(3) = ss - Int(ss / 1000) * 1000
   ss = Int(ss / 1000)
   triad(4) = ss - Int(ss / 1000) * 1000
   ss = Int(ss / 1000)
   
   numb1(0) = ""
   numb1(1) = "один "
   numb1(2) = "два "
   numb1(3) = "три "
   numb1(4) = "четыре "
   numb1(5) = "пять "
   numb1(6) = "шесть "
   numb1(7) = "семь "
   numb1(8) = "восемь "
   numb1(9) = "девять "
   numb1(10) = "десять "
   numb1(11) = "одиннадцать "
   numb1(12) = "двенадцать "
   numb1(13) = "тринадцать "
   numb1(14) = "четырнадцать "
   numb1(15) = "пятнадцать "
   numb1(16) = "шестнадцать "
   numb1(17) = "семнадцать "
   numb1(18) = "восемнадцать "
   numb1(19) = "девятнадцать "
   numb2(0) = ""
   numb2(1) = ""
   numb2(2) = "двадцать "
   numb2(3) = "тридцать "
   numb2(4) = "сорок "
   numb2(5) = "пятьдесят "
   numb2(6) = "шестьдесят "
   numb2(7) = "семьдесят "
   numb2(8) = "восемьдесят "
   numb2(9) = "девяносто "
   numb3(0) = ""
   numb3(1) = "сто "
   numb3(2) = "двести "
   numb3(3) = "триста "
   numb3(4) = "четыреста "
   numb3(5) = "пятьсот "
   numb3(6) = "шестьсот "
   numb3(7) = "семьсот "
   numb3(8) = "восемьсот "
   numb3(9) = "девятьсот "
   txt = ""
   
   If ss <> 0 Then
       n = MsgBox("Сумма выходит за границы формата", 16, "Сумма прописью")
       Сумма_прописью = ""
       Exit Function
   End If
   
   For i = 4 To 1 Step -1
       n = 0
       If triad(i) > 0 Then
           n = Int(triad(i) / 100)
           txt = txt & numb3(n)
           n = Int((triad(i) - n * 100) / 10)
           txt = txt & numb2(n)
           If n < 2 Then
               n = triad(i) - (Int(triad(i) / 10) - n) * 10
           Else
               n = triad(i) - Int(triad(i) / 10) * 10
           End If
           Select Case n
           Case 1
               If i = 2 Then txt = txt & "одна " Else txt = txt & "один "
           Case 2
               If i = 2 Then txt = txt & "две " Else txt = txt & "два"
           Case Else
               txt = txt & numb1(n)
           End Select
           Select Case i
           Case 2
               If n = 0 Or n > 4 Then
                   txt = txt + "тысяч "
               Else
                   If n = 1 Then txt = txt + "тысяча " Else txt = txt + "тысячи "
               End If
           Case 3
               If n = 0 Or n > 4 Then
                   txt = txt + "миллионов "
               Else
                   If n = 1 Then txt = txt + "миллион " Else txt = txt + "миллиона "
               End If
           Case 4
               If n = 0 Or n > 4 Then
                   txt = txt + "миллиардов "
               Else
                   If n = 1 Then txt = txt + "миллиард " Else txt = txt + "миллиарда "
               End If
           End Select
       End If
   Next i
   
   If n = 0 Or n > 4 Then
       txt = txt + "рублей"
   Else
       If n = 1 Then txt = txt + "рубль" Else txt = txt + "рубля"
   End If
   
   txt = UCase$(Left$(txt, 1)) & Mid$(txt, 2)
   Сумма_прописью = txt
   
End Function

Private Sub Command1_Click()
Text1.Text = Сумма_прописью(Text1.Text)
End Sub

Ответ взят на: www.mtsecurity.narod.ru
Автор: Sergey V. Volkov
Сайт: http://






Просмотров: 4930

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную