purebasic.info

PureBasic forum
Текущее время: Пн июл 13, 2020 5:26 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Перевод числа в пропись
СообщениеДобавлено: Пт июн 01, 2012 2:58 pm 
Не в сети
доцент

Зарегистрирован: Чт дек 24, 2009 11:12 am
Сообщений: 33
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Процедура перевода числа в пропись до 999 999 999.99 . Используется три языка.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
;Портирована с Clipper
;* До 1 миллиарда: 999,999,999.99
;Stroka(***.**,"USD")
;Stroka(***.**,"UAH")
;Stroka(***.**,"RUB")
Procedure.s Stroka(lol.d,valuta.s)
   ko.d=(lol-IntQ(lol))*100
   kop_ka.s=Str(ko)
   vse.s=Str(Int(lol))+kop_ka
   Dim MNC.s(36)
   Select valuta
      Case "RUB"
         
         MNC(1)=" один":MNC(2)=" два":MNC(3)=" три":MNC(4)=" четыре":MNC(5)=" пять":MNC(6)=" шесть":MNC(7)=" семь":MNC(8)=" восемь":MNC(9)=" девять":MNC(10)=" десять"
         MNC(11)=" одинадцать":MNC(12)=" двенадцать":MNC(13)=" тринадцать":MNC(14)=" четырнадцать":MNC(15)=" пятнадцать":MNC(16)=" шестнадцать":MNC(17)=" семнадцать"
         MNC(18)=" восемнадцать":MNC(19)=" девятнадцать":MNC(20)=" двадцать":MNC(21)=" тридцать":MNC(22)=" сорок":MNC(23)=" пятьдесят":MNC(24)=" шестьдесят"
         MNC(25)=" семьдесят":MNC(26)=" восемьдесят":MNC(27)=" девяносто":MNC(28)=" сто":MNC(29)=" двести":MNC(30)=" триста":MNC(31)=" четыреста"
         MNC(32)=" пятьсот":MNC(33)=" шестьсот":MNC(34)=" семьсот":MNC(35)=" восемьсот":   MNC(36)=" девятьсот"
         mil1.s=" миллионов ":mil2.s=" миллиона ":mil3.s=" миллион "
         tis1.s=" тысяч ":tis2.s=" тысячи ":tis3.s=" тысяча " :dve.s= " две":odna.s=" одна":  rub.s="руб. ":kopp.s=" коп."
         
      Case "UAH"
         
         MNC(1)=" один":MNC(2)=" два":MNC(3)=" три":MNC(4)=" чотири":MNC(5)=" п'ять":MNC(6)=" шiсть":MNC(7)=" сiм":MNC(8)=" вiсiм":MNC(9)=" дев'ять":MNC(10)=" десять"
         MNC(11)=" одиннадцять":MNC(12)=" дванадцять":MNC(13)=" тринадцять":MNC(14)=" чотирнадцять":MNC(15)=" п'ятнадцять":MNC(16)=" шiстнадцять":MNC(17)=" сiмнадцять"
         MNC(18)=" вiсiмнадцять":MNC(19)=" дев'ятнадцять":MNC(20)=" двадцять":MNC(21)=" тридцять":MNC(22)=" сорок":MNC(23)=" п'ятдесят":MNC(24)=" шiстьдесят"
         MNC(25)=" сiмдесят":MNC(26)=" вiсiмдесят":MNC(27)=" дев'яносто":MNC(28)=" сто":MNC(29)=" двiстi":MNC(30)=" триста":MNC(31)=" чотириста"
         MNC(32)=" п'ятьсот":MNC(33)=" шiстьсот":MNC(34)=" сiмсот":MNC(35)=" вiсiмсот":   MNC(36)=" дев'ятсот"
         mil1.s=" мільйонів  ":mil2.s=" мільйони ":mil3.s=" мільйон "
         tis1.s=" тисяч ":tis2.s=" тисячі ":tis3.s=" тисяча " :dve.s= " двi":odna.s=" одна":  rub.s="грн. ":kopp.s=" коп."
         
      Case "USD"
         
         MNC(1)=" one":MNC(2)=" two":MNC(3)=" three":MNC(4)=" four":MNC(5)=" five":MNC(6)=" six":MNC(7)=" seven":MNC(8)=" eight":MNC(9)=" nine":MNC(10)=" ten"
         MNC(11)=" eleven":MNC(12)=" twelve":MNC(13)=" thirteen":MNC(14)=" fourteen":MNC(15)=" fifteen":MNC(16)=" sixteen":MNC(17)=" seventeen"
         MNC(18)=" eighteen":MNC(19)=" nineteen":MNC(20)=" twenty":MNC(21)=" thirty":MNC(22)=" fourty":MNC(23)=" fifty":MNC(24)=" sixty"
         MNC(25)=" seventy":MNC(26)=" eighty":MNC(27)=" ninety":MNC(28)=" one hundred":MNC(29)=" two hundred":MNC(30)=" three hundred":MNC(31)=" four hundred"
         MNC(32)=" five hundred":MNC(33)=" six hundred":MNC(34)=" seven hundred":MNC(35)=" eight hundred":   MNC(36)=" nine hundred"
         mil1.s=" million  ":mil2.s=" million ":mil3.s=" million "
         tis1.s=" thousand ":tis2.s=" thousand ":tis3.s=" thousand " :dve.s= " two":odna.s=" one":  rub.s="dollars ":kopp.s=" cent."
   EndSelect
   
   K.s=RSet(vse,11," ")
   KOP.s=Mid(K,10,2)
   K1.s=Mid(K,1,1)
   K2.s=Mid(K,2,1)
   K3.s=Mid(K,3,1)
   K4.s=Mid(K,4,1)
   K5.s=Mid(K,5,1)
   K6.s=Mid(K,6,1)
   K7.s=Mid(K,7,1)
   K8.s=Mid(K,8,1)
   K9.s=Mid(K,9,1)
   
   ;***************************        миллионы
   ;{
   NMK1.s=" "
   NMK2.s=" "
   NMK3.s=" "
   NAMM.s=" "
   L1=0
   L2=0
   L3=0
   
   If K1<>" "
      L1=Val(K1)
      NMK1=MNC(L1+27)
   EndIf
   
   If K2<>" " And K2<>"0"
      L2=Val(K2+K3)
      If L2<21 And L2>0
         NMK2=MNC(L2)
      Else
         L2=Val(K2)
         NMK2=MNC(L2+18)
         If K3<>"0"
            L3=Val(K3)
            NMK3=MNC(L3)
         EndIf
      EndIf
   Else
      If K3<>" " And K3<>"0"
         L3=Val(K3)
         NMK3=MNC(L3)
      EndIf
   EndIf
   
   If L1<>0 Or L2<>0 Or L3<>0
      NAMM=mil1;" миллионов "
      If L3>0 And L3<5
         NAMM=mil2;" миллиона "
         If L3=1
            NAMM=mil3;" миллион "
         EndIf
      EndIf
   EndIf
   ;}
   ;***************************        тысячи
   ;{
   NTK1.s=" "
   NTK2.s=" "
   NTK3.s=" "
   NAMT.s=" "
   L1=0
   L2=0
   L3=0
   
   If K4<>" " And K4<>"0"
      L1=Val(K4)
      NTK1=MNC(L1+27)
   EndIf
   
   If K5<>" " And K5<>"0"
      L2=Val(K5+K6)
      If L2<21 And L2>0
         NTK2=MNC(L2)
      Else
         L2=Val(K5)
         NTK2=MNC(L2+18)
         If K6<>"0"
            L3=Val(K6)
            NTK3=MNC(L3)
         EndIf
      EndIf
   Else
      If K6<>" " And K6<>"0"
         L3=Val(K6)
         NTK3=MNC(L3)
      EndIf
   EndIf
   
   If L1<>0 Or L2<>0 Or L3<>0
      NAMT=tis1;" тысяч "
      If L3>0 And L3<5
         NAMT=tis2;" тысячи "
         If L3=2
            NTK3=dve;" две"
         EndIf
         If L3=1
            NTK3=odna;" одна"
            NAMT=tis3;" тысяча "
         EndIf
      EndIf
   EndIf
   ;}
   ;***************************        сотни
   ;{
   NSK1.s=" "
   NSK2.s=" "
   NSK3.s=" "
   NAMS.s=" "
   L1=0
   L2=0
   L3=0
   
   If K7<>" " And K7<>"0"
      L1=Val(K7)
      NSK1=MNC(L1+27)
   EndIf
   
   If K8<>" " And K8<>"0"
      L2=Val(K8+K9)
      If L2<21 And L2>0
         NSK2=MNC(L2)
      Else
         L2=Val(K8)
         NSK2=MNC(L2+18)
         If K9<>"0"
            L3=Val(K9)
            NSK3=MNC(L3)
         EndIf
      EndIf
   Else
      If K9<>" " And K9<>"0"
         L3=Val(K9)
         NSK3=MNC(L3)
      EndIf
   EndIf
   ;}
   ;**************************
   
   MIMKS.s=NMK1+NMK2+NMK3+NAMM
   MITKS.s=NTK1+NTK2+NTK3+NAMT
   MISKS.s=NSK1+NSK2+NSK3+NAMS
   ITOGOC.s=MIMKS+MITKS+MISKS+rub+KOP+kopp
   ProcedureReturn ITOGOC
EndProcedure
 
Debug Stroka(999456712.56,"RUB")
Debug Stroka(123456712.56,"UAH")
Debug Stroka(123456712.56,"USD")
 



Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс авг 19, 2012 9:39 am 
Не в сети
док

Зарегистрирован: Ср фев 08, 2012 10:39 am
Сообщений: 131
Откуда: Красноярск
Благодарил (а): 7 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
Отличная фича для учетных систем. Спасибо

_________________
Уважай других, чтобы уважали тебя


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср авг 22, 2012 8:01 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пт янв 27, 2012 7:12 pm
Сообщений: 894
Откуда: Кустанай
Благодарил (а): 27 раз.
Поблагодарили: 13 раз.
Пункты репутации: 7
http://morpher.ru/SummaPropisyu.aspx

_________________
Детям нельзя в интернет. От детей интернет тупеет.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср авг 22, 2012 2:56 pm 
Не в сети
профессор

Зарегистрирован: Ср янв 14, 2009 4:12 pm
Сообщений: 2002
Благодарил (а): 12 раз.
Поблагодарили: 101 раз.
Пункты репутации: 43
m0t0d0r
Ну и причем здесь твоя ссылка. Ссылку в код проги не засунешь 8)

_________________
Всё должно быть просто, настолько просто, насколько возможно, но не проще. (c) Альберт Эйнштейн
Изображение


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср авг 22, 2012 3:31 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пт янв 27, 2012 7:12 pm
Сообщений: 894
Откуда: Кустанай
Благодарил (а): 27 раз.
Поблагодарили: 13 раз.
Пункты репутации: 7
pablov писал(а):
m0t0d0r
Ну и причем здесь твоя ссылка. Ссылку в код проги не засунешь 8)

распарсить можно, при условии, что пишешь для себя и всегда есть интернет, это ведь прощще


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB