kokodrilo   15-01-2021, 17:16
#1
buenas,

estoy trabajando en un código que pasa números a letras ejemplo: 10 a diez, 1001 a mil uno etc

pero tengo un problema con la clase boxinteger creada por mi, y es que al llegar a diez cifras me da un error, alguien me puede ayudar con eso?

el proyecto esta en la granja, saludos

0= cero
533= quinientos treinta y tres
1066= mil sesenta y seis
1599= mil quinientos noventa y nueve
2132= dos mil ciento treinta y dos
2665= dos mil seiscientos sesenta y cinco
3198= tres mil ciento noventa y ocho
3731= tres mil setecientos treinta y uno
4264= cuatro mil doscientos sesenta y cuatro
4797= cuatro mil setecientos noventa y siete
5330= cinco mil trecientos treinta
5863= cinco mil ochocientos sesenta y tres
6396= seis mil trecientos noventa y seis
6929= seis mil novecientos veintinueve
7462= siete mil cuatrocientos sesenta y dos
7995= siete mil novecientos noventa y cinco
8528= ocho mil quinientos veintiocho
9061= nueve mil sesenta y uno
9594= nueve mil quinientos noventa y cuatro
10127= diez mil ciento veintisiete
10660= diez mil seiscientos sesenta
11193= once mil ciento noventa y tres
11726= once mil setecientos veintiseis
12259= doce mil doscientos cincuenta y nueve
12792= doce mil setecientos noventa y dos
13325= trece mil trecientos veinticinco
13858= trece mil ochocientos cincuenta y ocho
14391= catorce mil trecientos noventa y uno
14924= catorce mil novecientos veinticuatro
15457= quince mil cuatrocientos cincuenta y siete
15990= quince mil novecientos noventa
16523= dieciséis mil quinientos veintitres
17056= diecisiete mil cincuenta y seis
17589= diecisiete mil quinientos ochenta y nueve
18122= dieciocho mil ciento veintidos
18655= dieciocho mil seiscientos cincuenta y cinco
19188= diecinueve mil ciento ochenta y ocho
19721= diecinueve mil setecientos veintiuno
20254= veite mil doscientos cincuenta y cuatro
20787= veite mil setecientos ochenta y siete
21320= veintiuno mil trecientos veite
21853= veintiuno mil ochocientos cincuenta y tres

22386= veintidos mil trecientos ochenta y seis
22919= veintidos mil novecientos diecinueve
23452= veintitres mil cuatrocientos cincuenta y dos
23985= veintitres mil novecientos ochenta y cinco
24518= veinticuatro mil quinientos dieciocho
25051= veinticinco mil cincuenta y uno
25584= veinticinco mil quinientos ochenta y cuatro
26117= veintiseis mil ciento diecisiete
26650= veintiseis mil seiscientos cincuenta
27183= veintisiete mil ciento ochenta y tres
27716= veintisiete mil setecientos dieciséis
28249= veintiocho mil doscientos cuarenta y nueve
28782= veintiocho mil setecientos ochenta y dos
29315= veintinueve mil trecientos quince
29848= veintinueve mil ochocientos cuarenta y ocho
30381= treinta mil trecientos ochenta y uno
30914= treinta mil novecientos catorce
31447= treinta y uno mil cuatrocientos cuarenta y siete
31980= treinta y uno mil novecientos ochenta

32513= treinta y dos mil quinientos trece
33046= treinta y tres mil cuarenta y seis
33579= treinta y tres mil quinientos setenta y nueve
34112= treinta y cuatro mil ciento doce
34645= treinta y cuatro mil seiscientos cuarenta y cinco
35178= treinta y cinco mil ciento setenta y ocho
35711= treinta y cinco mil setecientos once
36244= treinta y seis mil doscientos cuarenta y cuatro
36777= treinta y seis mil setecientos setenta y siete
37310= treinta y siete mil trecientos diez
37843= treinta y siete mil ochocientos cuarenta y tres
38376= treinta y ocho mil trecientos setenta y seis
38909= treinta y ocho mil novecientos nueve
39442= treinta y nueve mil cuatrocientos cuarenta y dos
39975= treinta y nueve mil novecientos setenta y cinco
40508= cuarenta mil quinientos ocho
41041= cuarenta y uno mil cuarenta y uno
41574= cuarenta y uno mil quinientos setenta y cuatro

42107= cuarenta y dos mil ciento siete
42640= cuarenta y dos mil seiscientos cuarenta
43173= cuarenta y tres mil ciento setenta y tres
43706= cuarenta y tres mil setecientos seis
44239= cuarenta y cuatro mil doscientos treinta y nueve
44772= cuarenta y cuatro mil setecientos setenta y dos
45305= cuarenta y cinco mil trecientos cinco
45838= cuarenta y cinco mil ochocientos treinta y ocho
46371= cuarenta y seis mil trecientos setenta y uno
46904= cuarenta y seis mil novecientos cuatro
47437= cuarenta y siete mil cuatrocientos treinta y siete
47970= cuarenta y siete mil novecientos setenta
48503= cuarenta y ocho mil quinientos tres
49036= cuarenta y nueve mil treinta y seis
49569= cuarenta y nueve mil quinientos sesenta y nueve

Nota: lo remarcado con negrita no es el error de la pregunta, pero si un error que hay que corregir en el código
Última modificación: 15-01-2021, 18:46 por kokodrilo.

El tiempo de las manifestaciones caducó pero el boicot con auto sacrificio es el camino para derrotar al sistema.
guizans   15-01-2021, 18:01
#2
A mi me da este error.

[Imagen: ZyO17CR.png]
kokodrilo   15-01-2021, 18:40
#3
ese no es el error, lo baje de la granja con ubuntu y no me da ese error,

el error es este:
Type mismatch: wanted Integer, got String instead
BoxInteger.Valor_Read.64
BoxInteger1


lo extraño es que te da el error a partir de las 10 cifras no antes, eso es lo que me descoloca.
Última modificación: 15-01-2021, 18:48 por kokodrilo.

El tiempo de las manifestaciones caducó pero el boicot con auto sacrificio es el camino para derrotar al sistema.
guizans   15-01-2021, 19:16
#4
¿Puede ser que el tipo da dato Integer no acepte tantas cifras? A lo mejor con uno tipo Long lo solucionas. Por decir algo
kokodrilo   15-01-2021, 19:25
#5
si puede ser voy a ver los limites de integer en la wiki gambas , pruebo y te comento

The value of an Integer is between -2147483648 and +2147483647
Última modificación: 15-01-2021, 19:31 por kokodrilo.

El tiempo de las manifestaciones caducó pero el boicot con auto sacrificio es el camino para derrotar al sistema.
kokodrilo   15-01-2021, 20:26
#6
bueno cambie a long y parece que anda, gracias, lo voy a seguir revisando y trabajando en este código

El tiempo de las manifestaciones caducó pero el boicot con auto sacrificio es el camino para derrotar al sistema.
guizans   15-01-2021, 20:43
#7
En Souceforge hay este programa que hace algo como el tuyo. Pero aviso, el codigo es un desastre, pero funciona Rolleyes
kokodrilo   17-01-2021, 18:09
#8
aquí corregí algunos errores, también cree la clase boxlong, similar su funcionamiento a boxinteger pero usando variables long, subo el proyecto con los avances, saludos

0= cero
533= quinientos treinta y tres
1066= mil sesenta y seis
1599= mil quinientos noventa y nueve
2132= dos mil ciento treinta y dos
2665= dos mil seiscientos sesenta y cinco
3198= tres mil ciento noventa y ocho
3731= tres mil setecientos treinta y uno
4264= cuatro mil doscientos sesenta y cuatro
4797= cuatro mil setecientos noventa y siete
5330= cinco mil trecientos treinta
5863= cinco mil ochocientos sesenta y tres
6396= seis mil trecientos noventa y seis
6929= seis mil novecientos veintinueve
7462= siete mil cuatrocientos sesenta y dos
7995= siete mil novecientos noventa y cinco
8528= ocho mil quinientos veintiocho
9061= nueve mil sesenta y uno
9594= nueve mil quinientos noventa y cuatro
10127= diez mil ciento veintisiete
10660= diez mil seiscientos sesenta
11193= once mil ciento noventa y tres
11726= once mil setecientos veintiséis
12259= doce mil doscientos cincuenta y nueve
12792= doce mil setecientos noventa y dos
13325= trece mil trecientos veinticinco
13858= trece mil ochocientos cincuenta y ocho
14391= catorce mil trecientos noventa y uno
14924= catorce mil novecientos veinticuatro
15457= quince mil cuatrocientos cincuenta y siete
15990= quince mil novecientos noventa
16523= dieciséis mil quinientos veintitrés
17056= diecisiete mil cincuenta y seis
17589= diecisiete mil quinientos ochenta y nueve
18122= dieciocho mil ciento veintidós
18655= dieciocho mil seiscientos cincuenta y cinco
19188= diecinueve mil ciento ochenta y ocho
19721= diecinueve mil setecientos veintiuno
20254= veite mil doscientos cincuenta y cuatro
20787= veite mil setecientos ochenta y siete
21320= veintiún mil trecientos veite
21853= veintiún mil ochocientos cincuenta y tres
22386= veintidós mil trecientos ochenta y seis
22919= veintidós mil novecientos diecinueve
23452= veintitrés mil cuatrocientos cincuenta y dos
23985= veintitrés mil novecientos ochenta y cinco
24518= veinticuatro mil quinientos dieciocho
25051= veinticinco mil cincuenta y uno
25584= veinticinco mil quinientos ochenta y cuatro
26117= veintiséis mil ciento diecisiete
26650= veintiséis mil seiscientos cincuenta
27183= veintisiete mil ciento ochenta y tres
27716= veintisiete mil setecientos dieciséis
28249= veintiocho mil doscientos cuarenta y nueve
28782= veintiocho mil setecientos ochenta y dos
29315= veintinueve mil trecientos quince
29848= veintinueve mil ochocientos cuarenta y ocho
30381= treinta mil trecientos ochenta y uno
30914= treinta mil novecientos catorce
31447= treinta y un mil cuatrocientos cuarenta y siete
31980= treinta y un mil novecientos ochenta
32513= treinta y dos mil quinientos trece
33046= treinta y tres mil cuarenta y seis
33579= treinta y tres mil quinientos setenta y nueve
34112= treinta y cuatro mil ciento doce
34645= treinta y cuatro mil seiscientos cuarenta y cinco
35178= treinta y cinco mil ciento setenta y ocho
35711= treinta y cinco mil setecientos once
36244= treinta y seis mil doscientos cuarenta y cuatro
36777= treinta y seis mil setecientos setenta y siete
37310= treinta y siete mil trecientos diez
37843= treinta y siete mil ochocientos cuarenta y tres
38376= treinta y ocho mil trecientos setenta y seis
38909= treinta y ocho mil novecientos nueve
39442= treinta y nueve mil cuatrocientos cuarenta y dos
39975= treinta y nueve mil novecientos setenta y cinco
40508= cuarenta mil quinientos ocho
41041= cuarenta y un mil cuarenta y uno
41574= cuarenta y un mil quinientos setenta y cuatro
42107= cuarenta y dos mil ciento siete
42640= cuarenta y dos mil seiscientos cuarenta
43173= cuarenta y tres mil ciento setenta y tres
43706= cuarenta y tres mil setecientos seis
44239= cuarenta y cuatro mil doscientos treinta y nueve
44772= cuarenta y cuatro mil setecientos setenta y dos
45305= cuarenta y cinco mil trecientos cinco
45838= cuarenta y cinco mil ochocientos treinta y ocho
46371= cuarenta y seis mil trecientos setenta y uno
46904= cuarenta y seis mil novecientos cuatro
47437= cuarenta y siete mil cuatrocientos treinta y siete
47970= cuarenta y siete mil novecientos setenta
48503= cuarenta y ocho mil quinientos tres
49036= cuarenta y nueve mil treinta y seis
49569= cuarenta y nueve mil quinientos sesenta y nueve
Última modificación: 17-01-2021, 18:13 por kokodrilo.

El tiempo de las manifestaciones caducó pero el boicot con auto sacrificio es el camino para derrotar al sistema.
Shell   20-01-2021, 15:34
#9
kokodrilo:

Según aparece en la granja el control ya tiene ¿ nueve meses ?.  No aparenta ser el mismo. O al menos la misma función.

[Imagen: vlH30vh.png]
No dice que convierta números a letras. No aparenta ser el mismo.
Y boxlong no aparece al filtrarlo en la granja. Me he perdido algo por el camino. Rolleyes

Así que era otro.

[Imagen: okqyk4t.png]

Como dijiste boxinteg.. Tongue

Saludos
Última modificación: 20-01-2021, 15:36 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 4 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.