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

<<>>

Convertir numeros a letrasgráfica de visualizaciones


Clipper/FiveWin

estrellaestrellaestrellaestrellaestrella(9)
Publicado el 18 de Febrero del 2002 por Carlos
16.590 visualizaciones desde el 18 de Febrero del 2002. Una media de 28 por semana
Este código convierte un valor en su equivalente en texto.
Código para Clipper o FoxPro.

Versión 1
estrellaestrellaestrellaestrellaestrella(9)

Publicado el 18 de Febrero del 2002gráfica de visualizaciones de la versión: Versión 1
16.591 visualizaciones desde el 18 de Febrero del 2002. Una media de 28 por semana
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
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
*
* Código Fuente para Convertir cantidades numérica a letras
* Realizado por: Carlos Veigt - Venezuela
*
* Puede ser utilizado en Clipper o Foxpro
* Para incluirlo como rutina, sólo hay que eliminar las dos lineas
* encerradas entre los asteriscos (**********) y asignarle el
* valor a la variable NUM desde la pantalla o programa donde se inserte
*
*
 
Do While .t.
Clear
Store 0 to Sw99,Sw_Mill,Sw_Mil
Store 0.00 to Num
Store " "  to Ente_ro,Deci_mal
Store ""  to Cant_Let,Cant_Let1,Cant_Let2,Cant_Let3,Cant_Let4,;
              Cant_Let5,Cant_Let6,Cant_Let7,Cant_Let8,Cant_Let9
**********
@ 1,5 Say "Cantidad en números? "Get Num
Read
**********
If Num=0
   Return
Else
   Ente_ro=Padl(Alltrim(Str(Int(Num))),9,"0")
   Deci_mal=Alltrim(Str((Num-Val(Ente_ro))*100))
   If Val(Deci_mal)=0
      Store "00" to Deci_mal
   Endif
 
   Dimension Arr_Uno(9)
   Store "Ciento "        to Arr_Uno(1)
Store "Doscientos "    to Arr_Uno(2)
Store "Trescientos "   to Arr_Uno(3)
Store "Cuatrocientos " to Arr_Uno(4)
Store "Quinientos "    to Arr_Uno(5)
Store "Seiscientos "   to Arr_Uno(6)
Store "Setecientos "   to Arr_Uno(7)
Store "Ochocientos "   to Arr_Uno(8)
Store "Novecientos "   to Arr_Uno(9)
 
If Substr(Ente_ro,1,3)="100"
   Store "Cien " to Cant_Let1
Else
   For K=1 to 9
       Aux=Alltrim(Str(K))
       If Substr(Ente_ro,1,1)=Aux
          Store Arr_Uno(K) to Cant_Let1
          Sw_Mill=1
       Endif
   Next
Endif
*
Dimension Arr_Dos(9)
Store "dieci"       to Arr_Dos(1)
Store "veinti"      to Arr_Dos(2)
Store "treinta y "   to Arr_Dos(3)
Store "cuarenta y "  to Arr_Dos(4)
Store "cincuenta y " to Arr_Dos(5)
Store "sesenta y "   to Arr_Dos(6)
Store "setenta y "   to Arr_Dos(7)
Store "ochenta y "   to Arr_Dos(8)
Store "noventa y "   to Arr_Dos(9)
For K=1 to 9
    Aux=Alltrim(Str(K))
    If Substr(Ente_ro,2,1)=Aux
       Store Arr_Dos(K) to Cant_Let2
       Sw_Mill=1
    Endif
Next
*
Dimension Arr_Tres(9)
Store "uno "    to Arr_Tres(1)
Store "dos "    to Arr_Tres(2)
Store "tres "   to Arr_Tres(3)
Store "cuatro " to Arr_Tres(4)
Store "cinco "  to Arr_Tres(5)
Store "seis "   to Arr_Tres(6)
Store "siete "  to Arr_Tres(7)
Store "ocho "   to Arr_Tres(8)
Store "nueve "  to Arr_Tres(9)
Do Case
   Case Substr(Ente_ro,1,3)="001"
        Store " "   to Cant_Let1
        Store " "   to Cant_Let2
        Store "Un " to Cant_Let3
        Sw99=1
        Sw_Mill=1
   Case Substr(Ente_ro,2,2)="11"
        Store " "   to Cant_Let2
        Store "Once " to Cant_Let3
        Sw99=1
        Sw_Mill=1
   Case Substr(Ente_ro,2,2)="12"
        Store " "   to Cant_Let2
        Store "Doce " to Cant_Let3
        Sw99=1
        Sw_Mill=1
   Case Substr(Ente_ro,2,2)="13"
        Store " "   to Cant_Let2
        Store "Trece " to Cant_Let3
        Sw99=1
        Sw_Mill=1
   Case Substr(Ente_ro,2,2)="14"
        Store " "   to Cant_Let2
        Store "Catorce " to Cant_Let3
        Sw99=1
        Sw_Mill=1
   Case Substr(Ente_ro,2,2)="15"
        Store " "   to Cant_Let2
        Store "Quince " to Cant_Let3
        Sw99=1
        Sw_Mill=1
   OtherWise
        For K=1 to 9
            Aux=Alltrim(Str(K))
            If Substr(Ente_ro,3,1)=Aux
               Store Arr_Tres(K) to Cant_Let3
               Sw99=1
               Sw_Mill=1
            Endif
        Next
Endcase
 
If Sw99=0
   Dimension Arr_Dos(9)
   Store "diez"       to Arr_Dos(1)
   Store "veinte"     to Arr_Dos(2)
   Store "treinta "   to Arr_Dos(3)
   Store "cuarenta "  to Arr_Dos(4)
   Store "cincuenta " to Arr_Dos(5)
   Store "sesenta "   to Arr_Dos(6)
   Store "setenta "   to Arr_Dos(7)
   Store "ochenta "   to Arr_Dos(8)
   Store "noventa "   to Arr_Dos(9)
   For K=1 to 9
       Aux=Alltrim(Str(K))
       If Substr(Ente_ro,2,1)=Aux
         Store Arr_Dos(K) to Cant_Let2
       Endif
   Next
Else
   Sw99=0
Endif
 
If Sw_Mill=1
   If Cant_Let3="Un "
      Store Cant_Let1+Cant_Let2+Cant_Let3+"millón " to Cant_Let
    Else
      Store Cant_Let1+Cant_Let2+Cant_Let3+"millones " to Cant_Let
   Endif
   Sw_Mill=0
Endif
*
Dimension Arr_Cuatro(9)
Store "ciento "        to Arr_Cuatro(1)
Store "doscientos "    to Arr_Cuatro(2)
Store "trescientos "   to Arr_Cuatro(3)
Store "cuatrocientos " to Arr_Cuatro(4)
Store "quinientos "    to Arr_Cuatro(5)
Store "seiscientos "   to Arr_Cuatro(6)
Store "setecientos "   to Arr_Cuatro(7)
Store "ochocientos "   to Arr_Cuatro(8)
Store "novecientos "   to Arr_Cuatro(9)
 
If Substr(Ente_ro,4,3)="100"
   Store "Cien " to Cant_Let4
   Sw_Mil=1
Else
   For K=1 to 9
       Aux=Alltrim(Str(K))
       If Substr(Ente_ro,4,1)=Aux
          Store Arr_Cuatro(K) to Cant_Let4
          Sw_Mil=1
       Endif
   Next
Endif
*
Dimension Arr_Cinco(9)
Store "dieci"       to Arr_Cinco(1)
Store "veinti"      to Arr_Cinco(2)
Store "treinta y "   to Arr_Cinco(3)
Store "cuarenta y "  to Arr_Cinco(4)
Store "cincuenta y " to Arr_Cinco(5)
Store "sesenta y "   to Arr_Cinco(6)
Store "setenta y "   to Arr_Cinco(7)
Store "ochenta y "   to Arr_Cinco(8)
Store "noventa y "   to Arr_Cinco(9)
For K=1 to 9
    Aux=Alltrim(Str(K))
    If Substr(Ente_ro,5,1)=Aux
       Store Arr_Cinco(K) to Cant_Let5
       Sw_Mil=1
    Endif
Next
*
Dimension Arr_Seis(9)
Store "uno "    to Arr_Seis(1)
Store "dos "    to Arr_Seis(2)
Store "tres "   to Arr_Seis(3)
Store "cuatro " to Arr_Seis(4)
Store "cinco "  to Arr_Seis(5)
Store "seis "   to Arr_Seis(6)
Store "siete "  to Arr_Seis(7)
Store "ocho "   to Arr_Seis(8)
Store "nueve "  to Arr_Seis(9)
 
Do Case
   Case Substr(Ente_ro,4,3)="001"
        Store " "   to Cant_Let4
        Store " "   to Cant_Let5
        Store "Un " to Cant_Let6
        Sw99=1
        Sw_Mil=1
   Case Substr(Ente_ro,5,2)="11"
        Store " "   to Cant_Let5
        Store "Once " to Cant_Let6
        Sw99=1
        Sw_Mil=1
   Case Substr(Ente_ro,5,2)="12"
        Store " "   to Cant_Let5
        Store "Doce " to Cant_Let6
        Sw99=1
        Sw_Mil=1
   Case Substr(Ente_ro,5,2)="13"
        Store " "   to Cant_Let5
        Store "Trece " to Cant_Let6
        Sw99=1
        Sw_Mil=1
   Case Substr(Ente_ro,5,2)="14"
        Store " "   to Cant_Let5
        Store "Catorce " to Cant_Let6
        Sw99=1
        Sw_Mil=1
   Case Substr(Ente_ro,5,2)="15"
        Store " "   to Cant_Let5
        Store "Quince " to Cant_Let6
        Sw99=1
        Sw_Mil=1
   OtherWise
        For K=1 to 9
            Aux=Alltrim(Str(K))
            If Substr(Ente_ro,6,1)=Aux
               Store Arr_Tres(K) to Cant_Let6
               Sw99=1
               Sw_Mil=1
           Endif
        Next
Endcase
 
If Sw99=0
   Dimension Arr_Cinco(9)
   Store "diez "      to Arr_Cinco(1)
   Store "veinte "    to Arr_Cinco(2)
   Store "treinta "   to Arr_Cinco(3)
   Store "cuarenta "  to Arr_Cinco(4)
   Store "cincuenta " to Arr_Cinco(5)
   Store "sesenta "   to Arr_Cinco(6)
   Store "setenta "   to Arr_Cinco(7)
   Store "ochenta "   to Arr_Cinco(8)
   Store "noventa "   to Arr_Cinco(9)
   For K=1 to 9
       Aux=Alltrim(Str(K))
       If Substr(Ente_ro,5,1)=Aux
          Store Arr_Cinco(K) to Cant_Let5
       Endif
   Next
Else
   Sw99=0
Endif
 
If Sw_Mil=1
   Store Cant_Let+Cant_Let4+Cant_Let5+Cant_Let6+"mil " to Cant_Let
   Sw_Mill=0
Endif
*
Dimension Arr_Siete(9)
Store "ciento "        to Arr_Siete(1)
Store "doscientos "    to Arr_Siete(2)
Store "trescientos "   to Arr_Siete(3)
Store "cuatrocientos " to Arr_Siete(4)
Store "quinientos "    to Arr_Siete(5)
Store "seiscientos "   to Arr_Siete(6)
Store "setecientos "   to Arr_Siete(7)
Store "ochocientos "   to Arr_Siete(8)
Store "novecientos "   to Arr_Siete(9)
 
If Substr(Ente_ro,7,3)="100"
   Store "Cien " to Cant_Let7
Else
   For K=1 to 9
       Aux=Alltrim(Str(K))
       If Substr(Ente_ro,7,1)=Aux
          Store Arr_Siete(K) to Cant_Let7
       Endif
   Next
Endif
*
Dimension Arr_Ocho(9)
Store "dieci"       to Arr_Ocho(1)
Store "veinti"      to Arr_Ocho(2)
Store "treinta y "   to Arr_Ocho(3)
Store "cuarenta y "  to Arr_Ocho(4)
Store "cincuenta y " to Arr_Ocho(5)
Store "sesenta y "   to Arr_Ocho(6)
Store "setenta y "   to Arr_Ocho(7)
Store "ochenta y "   to Arr_Ocho(8)
Store "noventa y "   to Arr_Ocho(9)
For K=1 to 9
    Aux=Alltrim(Str(K))
    If Substr(Ente_ro,8,1)=Aux
       Store Arr_Ocho(K) to Cant_Let8
    Endif
Next
*
Dimension Arr_Nueve(9)
Store "uno "    to Arr_Nueve(1)
Store "dos "    to Arr_Nueve(2)
Store "tres "   to Arr_Nueve(3)
Store "cuatro " to Arr_Nueve(4)
Store "cinco "  to Arr_Nueve(5)
Store "seis "   to Arr_Nueve(6)
Store "siete "  to Arr_Nueve(7)
Store "ocho "   to Arr_Nueve(8)
Store "nueve "  to Arr_Nueve(9)
Do Case
   Case Substr(Ente_ro,8,2)="11"
        Store " "   to Cant_Let5
        Store "Once " to Cant_Let6
        Sw99=1
        Sw_Mil=1
   Case Substr(Ente_ro,8,2)="12"
        Store " "   to Cant_Let5
        Store "Doce " to Cant_Let6
        Sw99=1
        Sw_Mil=1
   Case Substr(Ente_ro,8,2)="13"
        Store " "   to Cant_Let5
        Store "Trece " to Cant_Let6
        Sw99=1
        Sw_Mil=1
   Case Substr(Ente_ro,8,2)="14"
        Store " "   to Cant_Let5
        Store "Catorce " to Cant_Let6
        Sw99=1
        Sw_Mil=1
   Case Substr(Ente_ro,8,2)="15"
        Store " "   to Cant_Let5
        Store "Quince " to Cant_Let6
        Sw99=1
        Sw_Mil=1
   OtherWise
        For K=1 to 9
            Aux=Alltrim(Str(K))
            If Substr(Ente_ro,9,1)=Aux
               Store Arr_Tres(K) to Cant_Let9
               Sw99=1
            Endif
        Next
Endcase
*
 
If Sw99=0
   Dimension Arr_Ocho(9)
   Store "diez"       to Arr_Ocho(1)
   Store "veinte"     to Arr_Ocho(2)
   Store "treinta "   to Arr_Ocho(3)
   Store "cuarenta "  to Arr_Ocho(4)
   Store "cincuenta " to Arr_Ocho(5)
   Store "sesenta "   to Arr_Ocho(6)
   Store "setenta "   to Arr_Ocho(7)
   Store "ochenta "   to Arr_Ocho(8)
   Store "noventa "   to Arr_Ocho(9)
   For K=1 to 9
       Aux=Alltrim(Str(K))
       If Substr(Ente_ro,8,1)=Aux
          Store Arr_Ocho(K) to Cant_Let8
       Endif
   Next
Else
   Sw99=0
Endif
 
Store Cant_Let+Cant_Let7+Cant_Let8+Cant_Let9 to Cant_Let
 
Store Cant_Let+"con "+Deci_mal+"/100" to Cant_Let
 
@ 5,5 Say Cant_Let
@ 7,5 Say " "
Wait
Endif
Enddo
Release
Arr_Uno,Arr_Dos,Arr_Tres,Arr_uatro,Arr_Cinco,Arr_Seis,Arr_Siete,Arr_Ocho,Arr_Nueve



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

Miguel Angel
12 de Marzo del 2002
estrellaestrellaestrellaestrellaestrella
Hola.
Me parece que este programa puede ser muy util, baje el codigo fuente y trate de compilarlo en clipper 5.3, pero me despliega el error # 4045 mostrandome la lista de los arrays del uno al ocho. Deseo me puedan ayudar a compliarlo ya que en alguna ocasion necesite un programa como este, y creo que tal vez pueda necesitarlo nuevamente.
Responder
mariano
04 de Abril del 2002
estrellaestrellaestrellaestrellaestrella
no hay comentario bueno, el codigo es muy facil de idear
Responder
Edson
18 de Abril del 2002
estrellaestrellaestrellaestrellaestrella
Muy engorroso...
Responder
Ramón Zea
07 de Mayo del 2002
estrellaestrellaestrellaestrellaestrella
Tiene mucha redundancia, si te fijas repites mucho, podrias hacer esto en una funcion recursiva, o una llamada a una funcion pasando el valor que procesas en cada ocasion.
Saludos.
No se como poner algunas funciones de Clipper que tengo.
Puede que ayuden a algunos.
Responder
Guillermo Hernandez
13 de Junio del 2002
estrellaestrellaestrellaestrellaestrella
No funciono en Clipper 5.2, me marca el error "Comando no reconocido" en cada linea que comienza con "Dimension"
Responder
Diter Rubén
12 de Julio del 2002
estrellaestrellaestrellaestrellaestrella
Bueno lo que les puedo decir a todos es que este codigo fuente me ha sido de mucha ayuda por lo menos a mi pero los recomiendo que lo apliquen es muy bueno y muy corta la programaci{on
gracias...........................¡¡¡¡¡¡¡
Responder
Luis
02 de Enero del 2003
estrellaestrellaestrellaestrellaestrella
änimo, algún día lo lograrás, es un programa demasiado extenso
te reto a desarrollarlo en 20 líneas
Responder
Carlos
17 de Septiembre del 2003
estrellaestrellaestrellaestrellaestrella
No funciona para algunos numeros. Por ejemplo, los que terminan en 13, como 113, 1013, 2013, etc. Pruebalo y si lo corriges me interesaria tenerlo, es una rutina muy util.
Responder
Daves mansilla
19 de Julio del 2005
estrellaestrellaestrellaestrellaestrella
Ere redundante
Responder

Comentar la versión: Versión 1

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

http://lwp-l.com/s98