Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.037 c
6-1087306299
Григорьев Антон
2004-06-15 17:31
2004.12.12
Прошу оценить статью про сокеты


3-1100087184
ruslanyd
2004-11-10 14:46
2004.12.12
Среднее между TDBLookupListBox и TListBox


1-1101762349
SDV
2004-11-30 00:05
2004.12.12
Error


14-1100918516
fayzut
2004-11-20 05:41
2004.12.12
Delphi 7


8-1095138488
resha
2004-09-14 09:08
2004.12.12
Обработка звука!!!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский