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

Да миллион в и-нете ссылок на "перевод числа в словесную форму". Для фокса, Клиппера, C, ASM и т.д. и т.п.
...
Рейтинг: 0 / 0
06.03.2009, 05:50
    #35854844
homik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите кто может!!! Очень надо!!!
http://www.foxclub.ru/sol/list4.php - Welcom :)
...
Рейтинг: 0 / 0
10.03.2009, 12:33
    #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
10.03.2009, 13:28
    #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
10.03.2009, 13:42
    #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
11.03.2009, 14:46
    #35862272
Папа Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите кто может!!! Очень надо!!!
bratuxa,

Посмотрите.

Может подойдет.
...
Рейтинг: 0 / 0
11.03.2009, 17:56
    #35862928
bratuxa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите кто может!!! Очень надо!!!
всем огромное спасибо за помощь!!!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
17.12.2016, 18:36
    #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
27.12.2016, 15:57
    #39376195
LUCIAN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите кто может!!! Очень надо!!!
DmitryKn,
тут
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите кто может!!! Очень надо!!! / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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