powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите кто может!!! Очень надо!!!
11 сообщений из 11, страница 1 из 1
Помогите кто может!!! Очень надо!!!
    #35854452
bratuxa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При вводе числа в одно текстовое поле, во втором текстовом поле должно появиться то же число только уже прописью! даже мыслей никаких нет!
Можно на любую форму и на какую-нибудь кнопочку эту всю беду написать!
Заранее спасибо!!!
...
Рейтинг: 0 / 0
Помогите кто может!!! Очень надо!!!
    #35854746
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bratuxaдаже мыслей никаких нет!
Странно! ;)
Даже нажать на "поиск" мыслЯ не пришла?
...
Рейтинг: 0 / 0
Помогите кто может!!! Очень надо!!!
    #35854833
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bratuxaПри вводе числа в одно текстовое поле, во втором текстовом поле должно появиться то же число только уже прописью! даже мыслей никаких нет!
Можно на любую форму и на какую-нибудь кнопочку эту всю беду написать!
Заранее спасибо!!!

Да миллион в и-нете ссылок на "перевод числа в словесную форму". Для фокса, Клиппера, C, ASM и т.д. и т.п.
...
Рейтинг: 0 / 0
Помогите кто может!!! Очень надо!!!
    #35854844
homik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.foxclub.ru/sol/list4.php - Welcom :)
...
Рейтинг: 0 / 0
Помогите кто может!!! Очень надо!!!
    #35859434
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
homik,
Вот такой код работает во всех версиях foxpro
Код: plaintext
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.
FUNCTION PRPD
PARAMETERS CIF,NV
*СУММА ПРОПИСЬЮ
LOCAL all
SET TALK OFF
IF TYPE("NV")#"N"
	NV= 99 
ENDIF
IF CIF >  999999999999 . 99 
	WAIT "СУММА ПРОПИСЬЮ:РАСПИСЫВАЮ ТОЛЬКО ДО ТРИЛЛИОНА" WINDOW
RETURN "СУММА > 999999999999.99 САМИ РАСПИСЫВАЙТЕ" 	
ENDIF
ED="ОДИН*ДВА*ТРИ*ЧЕТЫРЕ*ПЯТЬ*ШЕСТЬ*СЕМЬ*ВОСЕМЬ*ДЕВЯТЬ*"
NAD="ОДИННАДЦАТЬ*ДВЕНАДЦАТЬ*ТРИНАДЦАТЬ*ЧЕТЫРНАДЦАТЬ*ПЯТНАДЦАТЬ*ШЕСТНАДЦАТЬ*СЕМНАДЦАТЬ*ВОСЕМНАДЦАТЬ*ДЕВЯТНАДЦАТЬ*"
DES="ДЕСЯТЬ*ДВАДЦАТЬ*ТРИДЦАТЬ*СОРОК*ПЯТЬДЕСЯТ*ШЕСТЬДЕСЯТ*СЕМЬДЕСЯТ*ВОСЕМЬДЕСЯТ*ДЕВЯНОСТО*"
SOT="СТО*ДВЕСТИ*ТРИСТА*ЧЕТЫРЕСТА*ПЯТЬСОТ*ШЕСТЬСОТ*СЕМЬСОТ*ВОСЕМЬСОТ*ДЕВЯТЬСОТ*"
NTR="*ТЫСЯЧ*МИЛЛИОН*МИЛЛИАРД*"
RUB=INT(CIF)
KOP=INT((CIF-RUB)* 100 )
KOPEEK=PADL(KOP, 2 ,"0")
PROP=""
DO CASE 
	CASE NV= 2 
		PROP="ДОЛЛАР."+KOPEEK+" ЦЕНТ.(США)"	
	CASE NV= 3 
		PROP="ЕВРО "+KOPEEK+" ЦЕНТ.(ЕЭС)"	
	CASE NV= 0 
		PROP="РУБ."+KOPEEK+" КОП."
	CASE NV= 1 
		PROP="РУБ."+KOPEEK+" КОП.(РОССИЯ)"
	CASE NV= 10 
		PROP="БЕЛОРУССКИХ РУБЛЕЙ"
ENDCASE

IF RUB =  0 
	RETURN "НОЛЬ "+PROP
ENDIF
SRUB=LTRIM(STR(RUB, 12 ))	
L=LEN(SRUB)
DIME C(L)
FOR I= 1  TO L
	C(I)=VAL(SUBSTR(SRUB,L+ 1 -I, 1 ))
ENDFOR	
FOR I= 1  TO L
	J=INT((I+ 2 )/ 3 ) && НОМЕР ТРИАДЫ
	K=MOD(I, 3 )     && НОМЕР РАЗРЯДА В ТРИАДЕ
		
	IF K= 1 
		DO NAMTR   && НАЗВАТЬ ТРИАДУ
	ENDIF
			
	IF C(I) =  0 
		LOOP
	ENDIF
	
	DO CASE
		CASE K= 1  .AND. I<L .AND. C(I+ 1 )= 1 
			PROP=PIC(NAD,"*",C(I))+" "+PROP
			I=I+ 1 
		CASE J= 2  .AND. K= 1  .AND. C(I)= 1 
			PROP="ОДНА "+PROP
		CASE J= 2  .AND.	K= 1  .AND. C(I)= 2 
			PROP="ДВЕ "+PROP
		CASE K= 1 
			PROP=PIC(M.ED,"*",C(I))+" "+PROP
		CASE K= 2 
			PROP=PIC(M.DES,"*",C(I))+" "+PROP
		CASE K= 0 
			PROP=PIC(M.SOT,"*",C(I))+" "+PROP
	ENDCASE
ENDFOR
RETURN PROP

PROCEDURE NAMTR
IF J= 1 
	RETURN
ENDIF

IF (I+ 2 )<L .AND. C(I)+C(I+ 1 )+C(I+ 2 )= 0 
	RETURN
ENDIF
DO CASE
	CASE J= 2  .AND. (I+ 1 ) <= L .AND. C(I+ 1 )= 1 
		PROP=" "+PROP
	CASE J= 2  .AND. C(I)= 1 
		PROP="А "+PROP
	CASE J= 2  .AND. C(I)> 1  .AND. C(I)< 5 
		PROP="И "+PROP
	CASE J> 2  .AND. (I+ 1 )<=L .AND. C(I+ 1 )= 1 			
		PROP="ОВ "+PROP
	CASE J> 2  .AND. C(I)> 1  .AND.C(I)< 5 
		PROP="А "+PROP
	CASE J> 2  .AND.(C(I)> 4 .OR.C(I)= 0 )
		PROP="ОВ "+PROP
	OTHERWISE
		PROP=" "+PROP	
ENDCASE
PROP=PIC(NTR,"*",J)+PROP					
RETURN
	
FUNCTION PIC
PARAMETERS Q1,Q2,Q3
Q1=Q2+Q1+Q2
RETURN SUBSTR(Q1,AT(Q2,Q1,Q3)+ 1 ,AT(Q2,Q1,Q3+ 1 )-AT(Q2,Q1,Q3)- 1 )
					
...
Рейтинг: 0 / 0
Помогите кто может!!! Очень надо!!!
    #35859643
homik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне лично понравилось вот это
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
DO CASE
	CASE J= 2  .AND. (I+ 1 ) <= L .AND. C(I+ 1 )= 1 
		PROP=" "+PROP
	CASE J= 2  .AND. C(I)= 1 
		PROP="А "+PROP
	CASE J= 2  .AND. C(I)> 1  .AND. C(I)< 5 
		PROP="И "+PROP
	CASE J> 2  .AND. (I+ 1 )<=L .AND. C(I+ 1 )= 1 			
		PROP="ОВ "+PROP
	CASE J> 2  .AND. C(I)> 1  .AND.C(I)< 5 
		PROP="А "+PROP
	CASE J> 2  .AND.(C(I)> 4 .OR.C(I)= 0 )
		PROP="ОВ "+PROP
	OTHERWISE
		PROP=" "+PROP	
ENDCASE

Потому как у меня эта часть реализована немного кривее. :)
Жму руку.
...
Рейтинг: 0 / 0
Помогите кто может!!! Очень надо!!!
    #35859693
Код: plaintext
1.
2.
3.
4.
5.
DO CASE
	CASE J> 2  .AND. (I+ 1 )<=L .AND. C(I+ 1 )= 1 			
		PROP="ОВ "+PROP
	CASE J> 2  .AND.(C(I)> 4 .OR.C(I)= 0 )
		PROP="ОВ "+PROP
А процитированные условия нельзя объединить? :)

А мне больше нравится такой код, который можно применять не только для определенных валют, но и для количества:

Код: plaintext
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.
* Использование n2s( число, 1_единица, 2_единицы, 5_единиц, род_единиц )
* род_единиц: Мужской и средний - .f., женский- .t.
Lparameters N, s1, s2, s3, sex
Local lnI, lnK, lnQ, lnR, lcS
Local All
If Pcount() <  5 
    sex=.F.
Endif
If Pcount() <  4 
    s3=''
Endif
If Pcount() <  3 
    s2=''
Endif
If Pcount() <  2 
    s1=''
Endif
If Pcount() <  1  Or N= 0 
SET STEP ON
    Return "ноль " + s3
Endif
Local Array laW[ 10 ], laL[ 9 ], laT[ 3 ], laO[ 4 ]
Stor '' To laO, laL, laT, laW, lcS
laO[ 1 ]='одна'
laO[ 2 ]='две'
laO[ 4 ]='четыр'
laL[ 1 ]='один'
laL[ 2 ]='два'
laL[ 3 ]='три'
laL[ 4 ]='четыре'
laL[ 5 ]='пят'
laL[ 6 ]='шест'
laL[ 7 ]='сем'
laL[ 8 ]='восем'
laL[ 9 ]='девят'
laW[ 2 ]='десять'
laW[ 5 ]='сорок'
laW[ 10 ]='девяносто'
laT[ 2 ]='сто'
laT[ 3 ]='двести'
lnR= 0 
Do Whil N> 0 
    lnQ=N% 1000 
    lnX=lnQ/ 100 
    lnK=lnQ% 10 
    lnI=((lnQ-lnK)% 100 )/ 10 
    lnM= 3 
    If lnI= 1  And lnK> 0 
        lcG=Iif(lnK> 4  Or lnK% 2 = 1 ,laL[lnK],laO[lnK])+'надцать'
    Else
        lcG=Iif(lnI> 4  And lnI< 9 ,laL[lnI]+'ьдесят',Iif(lnI> 1  And lnI< 4 ,laL[lnI]+'дцать',laW[lnI+ 1 ]))
        If lnK> 0 
            lnM=Iif(lnK= 1 , 1 ,Iif(lnK< 5 , 2 , 3 ))
            lcG=lcG+" "+Iif(lnK< 3  And (lnR= 1  Or (lnR= 0  And sex)),laO[lnK],laL[lnK]+Iif(lnK< 5 ,'','ь'))
        Endi
    Endi
    If lnR= 0 
        lcS=Iif(lnK> 4  Or lnK= 0  Or (lnI= 1  And lnK> 0 ),s3,Iif(lnK= 1 ,s1,s2))
    Endif
    lcS=Iif(lnQ= 0 ,'',Iif(lnX< 3 ,laT[lnX+ 1 ],Iif(lnX< 5 ,laL[lnX]+'ста',laL[lnX]+'ьсот'))+' '+lcG+' '+;
        IIF(lnR= 0 ,'',;
        IIF(lnR= 1 ,'тысяч'+Iif(lnM= 1 ,'a',Iif(lnM= 2 ,'и','')),Iif(lnR= 2 ,'миллион','миллиард')+;
        IIF(lnM= 1 ,'',Iif(lnM= 2 ,'а','ов')))+'')+' ')+lcS
    lnR=lnR+ 1 
    N=Int(N/ 1000 )
Endd
Retu Strtran(Alltrim(lcS),'  ',' ')
...
Рейтинг: 0 / 0
Помогите кто может!!! Очень надо!!!
    #35862272
Фотография Папа Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bratuxa,

Посмотрите.

Может подойдет.
...
Рейтинг: 0 / 0
Помогите кто может!!! Очень надо!!!
    #35862928
bratuxa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем огромное спасибо за помощь!!!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Помогите кто может!!! Очень надо!!!
    #39369325
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий....

А мне больше нравится такой код, который можно применять не только для определенных валют, но и для количества:

Код: sql
1.
2.
3.
4.
5.
6.
7.
* Использование n2s( число, 1_единица, 2_единицы, 5_единиц, род_единиц )
* род_единиц: Мужской и средний - .f., женский- .t.
Lparameters N, s1, s2, s3, sex
Local lnI, lnK, lnQ, lnR, lcS
Local All

...



Воспользовался, как раз количество и надо было, и вообще хорошо все получилось. Спасибо.
...
Рейтинг: 0 / 0
Помогите кто может!!! Очень надо!!!
    #39376195
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DmitryKn,
тут
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите кто может!!! Очень надо!!!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]