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

Вниз

подскажите алгоритм как число написать прописью   Найти похожие ветки 

 
big noob   (2004-12-01 12:18) [0]

добрый день....

подскажите алгоритм как число написать прописью


 
KSergey ©   (2004-12-01 12:20) [1]

Найди яндексом готовые


 
big noob   (2004-12-01 12:23) [2]

да я сам хочу сделать


 
Amoeba ©   (2004-12-01 12:25) [3]


> big noob   (01.12.04 12:23) [2]
> да я сам хочу сделать

Очередной велосипед изобрести приспичило?


 
Александр Иванов ©   (2004-12-01 12:36) [4]

Кто-то здесь делился, не помню точно, по-моему Nikolay N.

Attribute VB_Name = "Module1"
Public Function Сумма_прописью(Summa As Double, HideCentIfZero As Boolean) As String
Static Init As Boolean
Static MR(0 To 4) As String
Static MA(0 To 4, 0 To 9) As String
Static TR(0 To 2, 0 To 9) As String
Static Ex(0 To 2, 0 To 9) As String

If Summa <= 0 Or Summa > 999999999999.99 Then Exit Function

If Not Init Then
  MR(0) = "копе"
  MR(1) = "рубл"
  MR(2) = "тысяч"
  MR(3) = "миллион"
  MR(4) = "миллиард"
  TR(0, 0) = ""
  TR(0, 1) = "од"
  TR(0, 2) = "дв"
  TR(0, 3) = "три"
  TR(0, 4) = "четыр"
  TR(0, 5) = "пят"
  TR(0, 6) = "шест"
  TR(0, 7) = "сем"
  TR(0, 8) = "восем"
  TR(0, 9) = "девят"
  TR(1, 0) = ""
  TR(1, 1) = "десять"
  TR(1, 2) = "двадцать"
  TR(1, 3) = "тридцать"
  TR(1, 4) = "сорок"
  TR(1, 5) = "пятьдесят"
  TR(1, 6) = "шестьдесят"
  TR(1, 7) = "семьдесят"
  TR(1, 8) = "восемьдесят"
  TR(1, 9) = "девяносто"
  TR(2, 0) = ""
  TR(2, 1) = "сто"
  TR(2, 2) = "двести"
  TR(2, 3) = "триста"
  TR(2, 4) = "четыреста"
  TR(2, 5) = "пятьсот"
  TR(2, 6) = "шестьсот"
  TR(2, 7) = "семьсот"
  TR(2, 8) = "восемьсот"
  TR(2, 9) = "девятьсот"
  MA(0, 0) = "ек"
  MA(0, 1) = "йка"
  MA(0, 2) = "йки"
  MA(0, 3) = "йки"
  MA(0, 4) = "йки"
  MA(0, 5) = "ек"
  MA(0, 6) = "ек"
  MA(0, 7) = "ек"
  MA(0, 8) = "ек"
  MA(0, 9) = "ек"
  MA(1, 0) = "ей"
  MA(1, 1) = "ь"
  MA(1, 2) = "я"
  MA(1, 3) = "я"
  MA(1, 4) = "я"
  MA(1, 5) = "ей"
  MA(1, 6) = "ей"
  MA(1, 7) = "ей"
  MA(1, 8) = "ей"
  MA(1, 9) = "ей"
  MA(2, 0) = ""
  MA(2, 1) = "а"
  MA(2, 2) = "и"
  MA(2, 3) = "и"
  MA(2, 4) = "и"
  MA(2, 5) = ""
  MA(2, 6) = ""
  MA(2, 7) = ""
  MA(2, 8) = ""
  MA(2, 9) = ""
  MA(3, 0) = "ов"
  MA(3, 1) = ""
  MA(3, 2) = "а"
  MA(3, 3) = "а"
  MA(3, 4) = "а"
  MA(3, 5) = "ов"
  MA(3, 6) = "ов"
  MA(3, 7) = "ов"
  MA(3, 8) = "ов"
  MA(3, 9) = "ов"
  MA(4, 0) = "ов"
  MA(4, 1) = ""
  MA(4, 2) = "а"
  MA(4, 3) = "а"
  MA(4, 4) = "а"
  MA(4, 5) = "ов"
  MA(4, 6) = "ов"
  MA(4, 7) = "ов"
  MA(4, 8) = "ов"
  MA(4, 9) = "ов"
  Ex(0, 0) = ""
  Ex(0, 1) = "иннадцать"
  Ex(0, 2) = "енадцать"
  Ex(0, 3) = "надцать"
  Ex(0, 4) = "надцать"
  Ex(0, 5) = "надцать"
  Ex(0, 6) = "надцать"
  Ex(0, 7) = "надцать"
  Ex(0, 8) = "надцать"
  Ex(0, 9) = "надцать"
  Ex(1, 0) = ""
  Ex(1, 1) = "ин"
  Ex(1, 2) = "а"
  Ex(1, 3) = ""
  Ex(1, 4) = "е"
  Ex(1, 5) = "ь"
  Ex(1, 6) = "ь"
  Ex(1, 7) = "ь"
  Ex(1, 8) = "ь"
  Ex(1, 9) = "ь"
  Ex(2, 0) = ""
  Ex(2, 1) = "на"
  Ex(2, 2) = "е"
  Ex(2, 3) = ""
  Ex(2, 4) = "е"
  Ex(2, 5) = "ь"
  Ex(2, 6) = "ь"
  Ex(2, 7) = "ь"
  Ex(2, 8) = "ь"
  Ex(2, 9) = "ь"
  Init = True
End If

Dim TxtRps As String
Dim i As Integer, j As Integer, k As Integer
Dim R(0 To 2) As Integer
Dim Acc As String, d As String
TxtRps = Format(Summa, "000000000000.00")
TxtRps = Left(TxtRps, 12) & "0" & Right(TxtRps, 2)

For j = 4 To 0 Step -1
  For i = 2 To 0 Step -1
      R(i) = Mid(TxtRps, 15 - j * 3 - i, 1)
  Next i
  If j > 0 Then
      Acc = TR(2, R(2))
  Else
      Acc = ""
      If HideCentIfZero And R(1) = 0 And R(0) = 0 Then Exit For
  End If
  If R(1) <> 1 Or R(0) = 0 Then
      If j > 0 Then
          Acc = Trim(Acc & " " & TR(1, R(1)))
          Acc = Trim(Acc & " " & TR(0, R(0)))
      Else
          Acc = Trim(Acc & " " & R(1) & R(0))
      End If
      If j = 0 Or j = 2 Then k = 2 Else k = 1
  Else
      If j > 0 Then
          Acc = Trim(Acc & " " & TR(0, R(0)))
      Else
          Acc = Trim(Acc & " " & R(1) & R(0))
      End If
      k = 0
  End If
  If Acc <> "" Or (j = 1 And Сумма_прописью <> "") Then
      If j = 0 Then d = "" Else d = Ex(k, R(0))
      Acc = Trim(Acc & d & " " & MR(j))
      If k <> 0 Then k = R(0)
      Acc = Acc & MA(j, k)
  End If
  Сумма_прописью = Trim(Сумма_прописью & " " & Acc)
Next j
Сумма_прописью = UCase(Left(Сумма_прописью, 1)) & Mid(Сумма_прописью, 2)

End Function


 
big noob   (2004-12-01 12:39) [5]

спасибочки


 
KSergey ©   (2004-12-01 13:02) [6]

> [5] big noob   (01.12.04 12:39)
> спасибочки

Это называется "да я сам хочу сделать"???!!! Кто не давал-то?


 
Digitman ©   (2004-12-01 13:03) [7]


> big noob   (01.12.04 12:39) [5]
> спасибочки


хто ж тебя знает ... может ты на языке племени умба-юмба результирующую строку хотел иметь ...

типа вх.параметр типа "дабл" имеет значение 5.672842598700014, а результат работы ф-ции по преобразованию этого параметра в "число прописью" должно иметь вид "кильдым-тыгдым-сыгдым-мырдым умбаюмбатугриков" ..

эт тебе тогда не на delpimaster.ru нужно соваться ..
скорее на delpimaster.umbayumba

)



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

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

Наверх




Память: 0.48 MB
Время: 0.037 c
14-1101297881
Маг Похмеляйнен
2004-11-24 15:04
2004.12.12
Про девчонок и вольтмод


3-1099555085
Victor!
2004-11-04 10:58
2004.12.12
Как обойти дел. на ноль в JetSQL


3-1100296583
SergP
2004-11-13 00:56
2004.12.12
Создание таблицы DBASE IV. Что посоветуете использовать?


14-1101124657
menart
2004-11-22 14:57
2004.12.12
У кого есть delphi7


14-1101283486
PVOzerski
2004-11-24 11:04
2004.12.12
USB-принтер с NT4 - возможно ли?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский