Código de Clipper/FiveWin - Convertir numeros a letras

Versión 1
estrellaestrellaestrellaestrellaestrella(9)

Publicado el 23 de Julio del 2002gráfica de visualizaciones de la versión: Versión 1
18.566 visualizaciones desde el 23 de Julio del 2002
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

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
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
*ESTA FUNCION DEVUELVE EN LETRAS CUALQUIER NUMERO.
*EL RESULTADO SE DEVUELVE EN 3 VARIABLES: LETRA,LETRA1 Y LETRA2 PARA
*PODER IMPRIMIR EN DIFERENTES RENGLONES DE ACUERDO AL ESPACIO QUE SE
*TIENE, LA LONGITUD MAXIMA QUE PUEDE TENER CADA LINEA SE LE DA AL
*LLAMAR A LA FUNCION. EN ESTE EJEMPLO SON 60 CARACTERES. //
* By Claudio F. Frontoni (cfrontoni@velocom.com.ar)
 
PUBLIC MNUM
CLEAR
MNUM=0
DO WHILE .T.
@ 1,1 SAY "IMGRESE UN NUMERO" GET MNUM PICTURE [999,999,999.99]
READ
IF LASTKEY()=27
   EXIT
ENDIF
CLEAR
ALETRAS(MNUM,60)
@ 3,1 SAY LETRA
@ 4,1 SAY LETRA1
@ 5,1 SAY LETRA2
ENDDO
QUIT
 
****************
FUNCTION ALETRAS
****************
PARAMETERS SUMA,LARGO
PUBLIC LE01,LE02,LE03,LE04,LE05,LE06[9],LE07[20],LE08[9],LE09[9],LETRA1,LETRA2
PUBLIC LE10,LE11,LE12,LE13,LE14,LE15,LE16,LE17,LE18,LE19,LE20,ENTE,DECI,LETRA
STORE 1 TO LE02
STORE 0 TO LE03,LE04
STORE "" TO LE10,ENTE,LE05,DECI,LE01,LE11,LE12,LE13,LE14,LE15,LE16,LE17
STORE "" TO LE18,LE19,LE20,LETRA,LETRA1,LETRA2
LE03=INT(SUMA)
LE04=VAL(RIGHT(STR(SUMA-INT(SUMA),11,2),2))
LE06[1]="UNO"
LE06[2]="DOS"
LE06[3]="TRES"
LE06[4]="CUATRO"
LE06[5]="CINCO"
LE06[6]="SEIS"
LE06[7]="SIETE"
LE06[8]="OCHO"
LE06[9]="NUEVE"
LE07[1] ="DIEZ"
LE07[2] ="ONCE"
LE07[3] ="DOCE"
LE07[4] ="TRECE"
LE07[5] ="CATORCE"
LE07[6] ="QUINCE"
LE07[7] ="DIECISEIS"
LE07[8] ="DIECISIETE"
LE07[9] ="DIECIOCHO"
LE07[10]="DIECINUEVE"
LE07[11]="VEINTE"
LE07[12]="VEINTIUNO"
LE07[13]="VEINTIDOS"
LE07[14]="VEINTITRES"
LE07[15]="VEINTICUATRO"
LE07[16]="VEINTICINCO"
LE07[17]="VEINTISEIS"
LE07[18]="VEINTISIETE"
LE07[19]="VEINTIOCHO"
LE07[20]="VEINTINUEVE"
LE08[1]="TREINTA"
LE08[2]="CUARENTA"
LE08[3]="CINCUENTA"
LE08[4]="SESENTA"
LE08[5]="SETENTA"
LE08[6]="OCHENTA"
LE08[7]="NOVENTA"
LE09[1]="CIENTO"
LE09[2]="DOSCIENTOS"
LE09[3]="TRESCIENTOS"
LE09[4]="CUATROCIENTOS"
LE09[5]="QUINIENTOS"
LE09[6]="SEISCIENTOS"
LE09[7]="SETECIENTOS"
LE09[8]="OCHOCIENTOS"
LE09[9]="NOVECIENTOS"
LE01=RIGHT(STR(LE03,11,0),LENNUM(LE03))
IF LEN(LE01)=1
       DO UNIDAD
ELSEIF LEN(LE01)=2
       DO DECENA
ELSEIF LEN(LE01)=3
       DO CENTENA
ELSEIF LEN(LE01)=4
       DO MIL
ELSEIF LEN(LE01)=5
       DO DMIL
ELSEIF LEN(LE01)=6
       DO CMIL
ELSEIF LEN(LE01)=7
       DO MILL
ELSEIF LEN(LE01)=8
       DO DMILL
ELSEIF LEN(LE01)=9
       DO CMILL
ENDIF
ENTE=LE05
LE05=""
IF LE04<>0
   LE01=RIGHT(STR(SUMA,14,2),2)
   LE02=1
   DO DECENA
   DECI=LE05
ENDIF
IF .NOT.EMPTY(ENTE).AND.EMPTY(DECI)
   LETRA=ENTE+" PESOS"
ENDIF
IF EMPTY(ENTE).AND..NOT.EMPTY(DECI)
   LETRA=DECI+" CENTAVOS"
ENDIF
IF .NOT.EMPTY(ENTE).AND..NOT.EMPTY(DECI)
   LETRA=ENTE+" PESOS CON "+DECI+" CENTAVOS"
ENDIF
IF RIGHT(LETRA,12)="UNO CENTAVOS"
   LETRA=LEFT(LETRA,LEN(LETRA)-12)+"UN CENTAVO"
ENDIF
R=LARGO
IF LEN(LETRA)>LARGO
   DO WHILE .T.
      IF SUBSTR(LETRA,R,1)=" "
  LETRA1=RIGHT(LETRA,LEN(LETRA)-R)
  LETRA=LEFT(LETRA,R-1)
  EXIT
      ELSE
  R=R-1
      ENDIF
   ENDDO
ENDIF
R=LARGO
IF LEN(LETRA1)>LARGO
   DO WHILE .T.
      IF SUBSTR(LETRA1,R,1)=" "
  LETRA2=RIGHT(LETRA1,LEN(LETRA1)-R)
  LETRA1=LEFT(LETRA1,R-1)
  EXIT
      ELSE
  R=R-1
      ENDIF
   ENDDO
ENDIF
RELEASE LE01,LE02,LE03,LE04,LE05,LE06[9],LE07[20],LE08[9],LE09[9]
RELEASE LE10,LE11,LE12,LE13,LE14,LE15,LE16,LE17,LE18,LE19,LE20,ENTE,DECI
RETURN(.T.)
*******************************************
PROCEDURE UNIDAD
LE10=SUBSTR(LE01,LE02,1)
IF EMPTY(LE10).OR.LE10="0"
   LE05=""
   RETURN
ENDIF
LE05=LE06[VAL(LE10)]
RETURN
*******************************************
PROCEDURE DECENA
LE11=SUBSTR(LE01,LE02,2)
IF LEFT(LE11,1)="0"
   LE02=LE02+1
   DO UNIDAD
   LE02=LE02-1
   RETURN
ENDIF
IF VAL(LE11)<30
   LE05=LE07[VAL(LE11)-9]
   RETURN
ENDIF
LE02=LE02+1
DO UNIDAD
LE02=LE02-1
LE12=LE08[VAL(LEFT(LE11,1))-2]
IF.NOT.EMPTY(LE05)
  STORE LE12+" Y "+LE05 TO LE05
ELSE
   LE05=LE12
ENDIF
RETURN
*******************************************
PROCEDURE CENTENA
LE13=SUBSTR(LE01,LE02,3)
IF LEFT(LE13,1)="0"
   LE02=LE02+1
   DO DECENA
   LE02=LE02-1
   RETURN
ENDIF
LE02=LE02+1
DO DECENA
LE02=LE02-1
LE14=LE09[VAL(LEFT(LE13,1))]
IF .NOT.EMPTY(LE05)
   LE05=LE14+" "+LE05
ELSE
   LE05=LE14
ENDIF
IF LE05="CIENTO".AND.LEN(LE05)=6
   LE05="CIEN"
ENDIF
RETURN
*******************************************
PROCEDURE MIL
IF SUBSTR(LE01,LE02,1)="0"
   LE02=LE02+1
   DO CENTENA
   LE02=LE02-1
   RETURN
ENDIF
DO UNIDAD
LE15=LE05
IF LE05="UNO"
   LE15="UN"
ENDIF
LE02=LE02+1
DO CENTENA
LE02=LE02-1
IF .NOT.EMPTY(LE05)
   LE05=LE15+" MIL "+LE05
ELSE
   LE05=LE15+" MIL "
ENDIF
RETURN
*******************************************
PROCEDURE DMIL
IF SUBSTR(LE01,LE02,1)="0"
   LE02=LE02+1
   DO MIL
   LE02=LE02-1
   RETURN
ENDIF
DO DECENA
LE16=LE05
LE02=LE02+2
DO CENTENA
LE02=LE02-2
IF RIGHT(LE16,3)="UNO"
   LE16=LEFT(LE16,LEN(LE16)-1)
ENDIF
IF .NOT.EMPTY(LE05)
   LE05=LE16+" MIL "+LE05
ELSE
   LE05=LE16+" MIL "
ENDIF
RETURN
*******************************************
PROCEDURE CMIL
IF SUBSTR(LE01,LE02,1)="0"
   LE02=LE02+1
   DO DMIL
   LE02=LE02-1
   RETURN
ENDIF
DO CENTENA
LE17=LE05
LE02=LE02+3
DO CENTENA
LE02=LE02-3
IF RIGHT(LE17,3)="UNO"
   LE17=LEFT(LE17,LEN(LE17)-1)
ENDIF
IF .NOT.EMPTY(LE05)
   LE05=LE17+" MIL "+LE05
ELSE
   LE05=LE17+" MIL "
ENDIF
RETURN
*******************************************
PROCEDURE MILL
IF SUBSTR(LE01,LE02,1)="0"
   LE02=LE02+1
   DO CMIL
   LE02=LE02-1
   RETURN
ENDIF
DO UNIDAD
LE18=LE05
LE02=LE02+1
DO CMIL
LE02=LE02-1
LE20=" MILLONES "
IF LE18="UNO"
   LE18="UN"
   LE20=" MILLON "
ENDIF
IF .NOT.EMPTY(LE05)
   LE05=LE18+LE20+LE05
ELSE
   LE05=LE18+LE20
ENDIF
RETURN
*******************************************
PROCEDURE DMILL
IF SUBSTR(LE01,LE02,1)="0"
   LE02=LE02+1
   DO MILL
   LE02=LE02-1
   RETURN
ENDIF
DO DECENA
LE16=LE05
LE02=LE02+2
DO CMIL
LE02=LE02-2
LE20=" MILLONES "
IF RIGHT(LE16,3)="UNO"
   LE16=LEFT(LE16,LEN(LE16)-1)
ENDIF
IF .NOT.EMPTY(LE05)
   LE05=LE16+LE20+LE05
ELSE
   LE05=LE16+LE20
ENDIF
RETURN
*******************************************
PROCEDURE CMILL
IF SUBSTR(LE01,LE02,1)="0"
   LE02=LE02+1
   DO DMILL
   LE02=LE02-1
   RETURN
ENDIF
DO CENTENA
LE19=LE05
LE02=LE02+3
DO CMIL
LE02=LE02-3
LE20=" MILLONES "
IF RIGHT(LE19,3)="UNO"
   LE19=LEFT(LE19,LEN(LE19)-1)
ENDIF
IF .NOT.EMPTY(LE05)
   LE05=LE19+LE20+LE05
ELSE
   LE05=LE19+LE20
ENDIF
RETURN



Comentarios sobre la versión: Versión 1 (9)

6 de Agosto del 2002
estrellaestrellaestrellaestrellaestrella
Bueno, Buenisimo, estube como dos semanas craneandome como diablos podia hacerlos, y claudio me dio la respuesta.......... es más sencillo de lo que pense., pero a veces en lo sencillo esta la complicación, vayan mis Felicitaciones para ti.
Responder
31 de Agosto del 2002
estrellaestrellaestrellaestrellaestrella
este codigo funciona a la mitad, esta muy bien pero al momento de convertir numeros que terminan en 11,12,13,14,15 no funciona adecuadamente.
Responder
1 de Septiembre del 2002
estrellaestrellaestrellaestrellaestrella
Sencillo, fácil de entender y sobre todo bastante reducido... no le encontré ningún error, funciona perfectamente. Felicitaciones.!
Responder
25 de Junio del 2004
estrellaestrellaestrellaestrellaestrella
Gran y rapida solucion, gracias.
Responder
22 de Junio del 2005
estrellaestrellaestrellaestrellaestrella
eXCELENTES SIRVIO PARA PROGRAMAS DE NOMINAS gRACIAS POR LA RUTINA
Responder
20 de Febrero del 2006
estrellaestrellaestrellaestrellaestrella
Muy Bueno...Gracias
Responder
26 de Agosto del 2009
estrellaestrellaestrellaestrellaestrella
Oye amigo, este programa es de lo mejor. Te felicito. Te cuento que sirve muchisimo esta aplicación a cualquier programador que maneje aplicaciones contables o empresariales. eres de lo mejor.
Responder
10 de Enero del 2012
estrellaestrellaestrellaestrellaestrella
Muy bueno, funciona correctamente
Responder
Imágen de perfil
17 de Octubre del 2016
estrellaestrellaestrellaestrellaestrella
Muy bueno,funciona perfectamente incluso se puede adaptar para llenar cheques con la impresora.
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s277