Página 1 de 1

Lee Número

Publicado: 23 Nov 2009, 13:11
por Ximorro
LeeNumero.au3 ofrece una función llamada _LeeNumero que escribe en letra un número entero pasado como dígitos.
Es la función base, la comprobación de que la entrada sea correcta (un número entero sin puntos o comas, etc.) se deja al llamante.

El resultado lo da en minúsculas, que aunque parezca una tontería complica mucho las cosas pues números en principio iguales dejan de serlo porque según dónde estén tienen acento o no. Por ejemplo 1021021 es "un millón veintiún mil veintiuno", los 1, a pesar de ser en los tres casos unidades, tienen tres modos (un, ún y uno).

Lo he programado hasta números gigantescos, el mayor es este:
999999999999999999999999999999999999999999999999999999999999999999
con puntitos de millar:
999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999

Se empieza leyendo:
novecientos noventa y nueve mil novecientos noventa y nueve decallones... :smt003
Sí, decallones, lo que aprende uno cuando investiga un poco para los programas...

Como ejemplo de uso se adjunta el archivo LeeNumeroEjemplo.au3, que incluye 3 ejemplos de uso diferente (descomentar unos u otros para ejecutarlos).
El primer código, activado por defecto, es el más interesante, va leyendo números aleatoriamente, hasta que el usuario cancela. La distribución aleatoria se hace por número de cifras, porque si no siempre saldrían números gigantescos. Se cambian algunas cifras a cero porque esos números crean más problemas a _LeeNumero.
LeeNumeroPant.png
LeeNumeroPant.png (14.78 KiB) Visto 13832 veces
El segundo ejemplo es un código rápido para probar la función con un número dado.

El tercero es para ver cómo es de rápido.

El cuarto cuenta de 1 a 150.

Espero que os guste. Vi muchos para hacerlo en inglés pero en castellano es mucho más difícil. En inglés cada grupo de 3 indica un cambio de millar, millón, billón, trillón... en cambio nosotros tenemos millar, millón, millares de millón, billón, millares de billón...

Re: Lee Número

Publicado: 27 Nov 2009, 18:22
por Nahuel
La verdad me gustan mucho tus aplicaciones, muy bien programadas, prolijas y funcionales.

cuarenta y ocho mil quinientos setenta y siete quintillones cien mil quinientos cuatrillones doscientos veintiún mil setenta trillones siete mil ochocientos noventa y cinco billones cuatrocientos tres mil cuatrocientos cincuenta millones treinta mil treinta y nueve.

Re: Lee Número

Publicado: 29 Nov 2009, 01:39
por Chefito
Juer. Perdona Ximorro que no te dijese nada de este script.....se me pasó. Como escribistes tantos de golpe, lo debí abrir y por alguna razón no acabé de verlo.
Me ha gustado mucho el curro que has hecho y el resultado final. Esto queda guardado en mi carpeta de script por si algún día lo necesito :smt023 . Me estas dejando atras tiiiiiooooo!!!.
Como sigas así me convierte en un novato! :smt005 .

Saludos.

Re: Lee Número

Publicado: 29 Nov 2009, 04:03
por XPyro
Grande amigo, si que es un muy buen Script, mira que cantidad de números :smt005

Re: Lee Número

Publicado: 30 Nov 2009, 05:06
por Nahuel
Chefito escribió: Me ha gustado mucho el curro que has hecho
Qué es curro en España? Acá un curro es... como una estafa :P Algo para perjudicar a alguien.. jeje.

Perdón por comentar estupideces :P

Re: Lee Número

Publicado: 30 Nov 2009, 05:29
por gna08
Nahuel escribió:
Chefito escribió: Me ha gustado mucho el curro que has hecho
Qué es curro en España? Acá un curro es... como una estafa :P Algo para perjudicar a alguien.. jeje.

Perdón por comentar estupideces :P
jajaja, si, aca es otra cosa jaja. segun me dijeron es por ej un trabajo.. algo k traes haciendo entremanos pero no malo :smt017
Un laburo de aca :O jajajaja
Salu2

Re: Lee Número

Publicado: 30 Nov 2009, 09:15
por Chefito
Jajajajaja.
En españa: curro = trabajo.
Eso quedaría: Me ha gustado mucho el trabajo que has hecho.

Saludos.

Re: Lee Número

Publicado: 30 Nov 2009, 12:07
por Ximorro
Gracias foreros, me alegro de que os guste. Estas rutinillas a veces vienen bien.

Nahuel, ¿ese número es un mensaje cifrado?... no sé, ¡pues este sí que lo es!:
ciento sesenta y un decallones ochenta y seis mil ciento cinco nonillones ciento dieciocho mil noventa y siete octillones treinta y dos mil sesenta y cinco septillones ciento diecisiete mil ciento dieciséis sextillones ciento once mil setenta y tres quintillones ochenta y cuatro mil treinta y dos cuatrillones ciento un mil ciento quince trillones ciento doce mil noventa y siete billones doscientos cuarenta y un mil ciento once millones ciento ocho mil treinta y tres

Joer, y eso sólo son 21 caracteres (sirva esto de pista) :smt003
Muy compacto no es el sistema.

Chefito, qué te voy a dejar atrás, si eres el maestro de las librerías de Windows... Y estamos esperando esos programas que tienes entre manos, ¿qué tal va el splitter? :smt026

Nahuel no es ninguna estupidez, mejor aclarar las cosas. Sí, es un timo, el primer número que os sale es la cantidad de pasta que pasa de vuestra cuenta a mi cartilla secreta en Suiza, je, je. :smt003
Y por si hay dudas, pasta = dinero ;-)

En serio las diferencias con el idioma nos las aclaramos y aprendemos todos, especialmente por si alguien alguna vez se siente ofendido ¡seguramente significaba otra cosa!

Para nosotros ir a currar es ir a trabajar, así que ahí estaríamos diciendo "¡Me voy a estafar un rato!", ja, ja, ja, habrá que tener cuidado.

Re: Lee Número

Publicado: 01 Dic 2009, 01:15
por Chefito
Ximorro escribió:Chefito, qué te voy a dejar atrás, si eres el maestro de las librerías de Windows... Y estamos esperando esos programas que tienes entre manos, ¿qué tal va el splitter?
Conocedor de las librerías de win? Digamos que simplemente me defiendo :smt002 .
Respecto a lo del splitter......no te lo vas a creer pero apenas lo he tocado (digamos que apenas he programado nada) :smt005 . Si es que soy un gandul muy graaaanndeeeeee :smt021 . A ver si me animo y hago algo.

Saludos.

Re: Lee Número

Publicado: 02 Dic 2009, 04:44
por Nahuel
Amigo, para descifrar el mensaje me vas a tener que hacer un script que haga el proceso inverso :P Pasar de cadena a número :P

Re: Lee Número

Publicado: 16 Dic 2009, 13:34
por Ximorro
Hombre Nahuel ese sería un programa interesante, pero bastante más complicadillo que éste ;-)

Lo bueno del mensaje cifrado es que uno no lo descifra por el coñazo que supone pasar el texto a número, ja, ja.
Bueno, como tampoco se trata de torturaros aquí va el numerito de marras:
161086105118097032065117116111073084032101115112097241111108033

Por si no os molan estos acertijos un día de estos pondré el script que hice para codificar el mensaje, a partir de ahí hacer el decodificador estará chupao...

Re: Lee Número

Publicado: 24 Mar 2010, 19:28
por Charlie19
Hei Ximorro ...
Pues gracias pero ya encontre una possible solucion ....seguramente es una "mierda" pero me va y eso es lo bueno !

Código: Seleccionar todo

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <LeeNumero.au3>
#Region
Local $aa, $datos1, $parte, $result, $Form1, $Input1, $Button1, $nMsg
$Form1 = GUICreate("Numeros", 137, 64, 192, 124)
$Input1 = GUICtrlCreateInput("", 8, 8, 113, 21)
$Button1 = GUICtrlCreateButton("Con letras...", 24, 32, 75, 25, $WS_GROUP)

GUISetState()
#Region
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			_fall()
	EndSwitch
WEnd

Func _fall()
	$datos1 = GUICtrlRead($Input1)
				$result = _LeeNumero($datos1)
$aa = MsgBox(1, $datos1, $result)
EndFunc

Para los que no sepan de que va..esto es un possible code para crear una input, para poner el numero que queremos que nos leea el code tan bueno de Ximorro.
En realidad no es un code pensado que digamos por lo hice con un poco de suerte, pero queria saber si se podia...y pobe!
Pero porfavor ponganme lo que harian ustedes...porque por mucho que funciona e el mio es una "chapuza" !! ;)

GRACIAS Y MUY BUEN CODE

Re: Lee Número

Publicado: 25 Mar 2010, 12:05
por Ximorro
Bueno gracias, no es para tanto.

Y nada de "mierda", hombre, si está bien, de chapuza nada.
Y sobre todo me alegro de que lo hayas solucionado solo, pegándose con el problema es cuando se aprende. Las consultas hay que hacerlas después de pegarse con ello, como tú has hecho, que aún has hecho más porque has encontrado la solución ;-)

Únicamente decir que la variable $aa no te hace falta porque no haces nada con ella, pero no es muy importante.
¿Por qué llamas _fall a la función, que no se cae a ningún sitio, hombre ;-)

Una cosa, cuando haces #include <LeeNumero.au3> es porque LeeNumero.au3 lo has puesto con los includes de AutoIt ¿no?
Si lo quieres así perfecto, pero por si no lo sabes te informo de que puedes tener el au3 donde quieras, entonces si pones comillas en vez de menor-mayor pones el camino donde está:
#include "c:\programas\includes\LeeNumero.au3"
en realidad es relativo a tu programa, así que si está junto a él puedes hacer:
#include "LeeNumero.au3"

Por supuesto una vez has hecho el exe no tienes que pasar el au3, ya está incluido dentro.

Re: Lee Número

Publicado: 22 Jun 2011, 02:07
por kotoqu
Amigo ximorro... tengo la gigantesca duda... donde pongo los números para que me haga la transformación... no se donde poner los numeros...tal vez es una estupides básica pero necesito ayuda plisssss

Re: Lee Número

Publicado: 22 Jun 2011, 09:52
por Ximorro
Hola kotoku, piensa que lo que he hecho es una rutina para programadores, como si fuera una udf, si así te entiendes mejor.
Mira el ejemplo "LeeNumeroEjemplo.au3" para ver varias posibilidades de cómo usarla.

Tienes que hacer un programa que use mis rutinas. Por ejemplo uno básico que saque el texto del número 3453 en un MsgBox sería:
#include "LeeNumero.au3"
MsgBox(0, 3453 , _LeeNumero(3453))


¡Y ya está!
Es decir, le pasas el número a la función _LeeNumero(). En realidad lo que hay que pasar es el texto del número, o sea, sería más correcto:
_LeeNumero("3453")
Con números pequeños como este da lo mismo, pero con números grandes se saldría del rango de AutoIT para números enteros y dejaría de funcionar.
Te recomiendo pasar siempre textos para no tener problemas.

Ya me dices.

Además de mis ejemplos en "LeeNumeroEjemplo.au3" en los comentarios tienes un ejemplo de Charlie19 que lee el número de una caja de texto en un GUI.

Re: Lee Número

Publicado: 22 Jun 2011, 20:02
por kotoqu
Gracias por responder... soy nuevo en esto... voy a realizar lo que me indicas... Gracias.