Comparar Datos
Comparar Datos
Hola a todos.
Antes que nada quiero felicitarlos por este fantástico foro. Realmente es muy útil.
Debo comentar estoy iniciando un proyecto en el que debo interactuar con varias páginas web. Buscando herramientas que me ayuden en esta taréa, descubrí Autoit y me sorprendió lo fácil que resulta realizar ciertas cosas con un conocimiento ínfimo como el mío.
( olvidé decir que soy totalmente novato en esto de la programación).
Hace tres días que estoy con Autoit y leyendo el foro y la ayuda, he logrado hacer un par de scripts que acomodan las ventanas tal como las necesito y "leen" la información visual de la pantalla devolviendome la información buscada.
Ahora la duda. Si bien he buscado, debido a mi desconocimiento del vocabulario no he llegado a una respuesta satisfactoria.
Necesito comparar un dato obtenido mediante la función PixelGetColor con un listado de 50 respuestas posibles.
Ya tengo asignadas las constantes de las 50 posibles respuestas y obtengo la información de la pantalla, pero no sé como hacer que el script me dé como respuesta que el color del pixel corresponde al número "x" de la lista.
Muchisimas gracias desde ya.
Antes que nada quiero felicitarlos por este fantástico foro. Realmente es muy útil.
Debo comentar estoy iniciando un proyecto en el que debo interactuar con varias páginas web. Buscando herramientas que me ayuden en esta taréa, descubrí Autoit y me sorprendió lo fácil que resulta realizar ciertas cosas con un conocimiento ínfimo como el mío.
( olvidé decir que soy totalmente novato en esto de la programación).
Hace tres días que estoy con Autoit y leyendo el foro y la ayuda, he logrado hacer un par de scripts que acomodan las ventanas tal como las necesito y "leen" la información visual de la pantalla devolviendome la información buscada.
Ahora la duda. Si bien he buscado, debido a mi desconocimiento del vocabulario no he llegado a una respuesta satisfactoria.
Necesito comparar un dato obtenido mediante la función PixelGetColor con un listado de 50 respuestas posibles.
Ya tengo asignadas las constantes de las 50 posibles respuestas y obtengo la información de la pantalla, pero no sé como hacer que el script me dé como respuesta que el color del pixel corresponde al número "x" de la lista.
Muchisimas gracias desde ya.
- BasicOs
- Site Admin
- Mensajes: 2091
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Re: Comparar Datos
Bienvenido,
si muestras tu código puede ser más clarificador,
si te he entendido bien parece que lo que necesitas sería:
A nivel muy básico (hay muchas otras maneras), sería con un
select Case (o si no lo usas, también muchos IF/THEN), donde pones en cada opción del case un msgbox() con el número de respuesta o mejor una variable solución es igual $solucion=1
o con el 2, 3, 4, etc.. y al final el msgbox()
Otras maneras serían asignarlos a una matriz y luego con un for /next o while wend hacer la comparación de los valores.
Salu22:)
si muestras tu código puede ser más clarificador,
si te he entendido bien parece que lo que necesitas sería:
A nivel muy básico (hay muchas otras maneras), sería con un
select Case (o si no lo usas, también muchos IF/THEN), donde pones en cada opción del case un msgbox() con el número de respuesta o mejor una variable solución es igual $solucion=1
o con el 2, 3, 4, etc.. y al final el msgbox()
Otras maneras serían asignarlos a una matriz y luego con un for /next o while wend hacer la comparación de los valores.
Salu22:)
Re: Comparar Datos
Gracias BasicOs.
Lo de If / Then, se me había ocurrido, pero esperaba que hubiera una manera menos "trabajosa".
Voy a probar con las otras variantes, a ver que sale.
gracias
Lo de If / Then, se me había ocurrido, pero esperaba que hubiera una manera menos "trabajosa".
Voy a probar con las otras variantes, a ver que sale.
gracias
- Ximorro
- Profesional del Autoit
- Mensajes: 1500
- Registrado: 10 Jul 2009, 12:35
- Ubicación: Castellón, España
Re: Comparar Datos
Otra manera es meter todos los valores en una matriz (vector) y luego buscarlo con un bucle, eso te daría el índice en el vector, es decir "el número x de la lista".
El código queda más compacto que con el select.
Por ejemplo esto busca el número 89 en una lista de 6 números, también te dice si no lo encuentra. Da la posición natural, por eso sumo 1 al índice, que comieza por cero, en vez de uno, pero eso se hace o no dependiendo de lo que te interese.
Si no os gustan mucho los ExitLoop, por supuesto se puede hacer en un WHILE en vez de un FOR.
El código queda más compacto que con el select.
Por ejemplo esto busca el número 89 en una lista de 6 números, también te dice si no lo encuentra. Da la posición natural, por eso sumo 1 al índice, que comieza por cero, en vez de uno, pero eso se hace o no dependiendo de lo que te interese.
Código: Seleccionar todo
Global $lista[6] = [12, 45, 67, 89, 13, 47]
Global $busco = 89, $encontrado = False
For $i = 0 To UBound($lista)-1
If $lista[$i] = $busco Then
$encontrado = True
ExitLoop
EndIf
Next
If $encontrado Then
ConsoleWrite("Encontrado en posición número " & ($i+1) & @LF)
Else
ConsoleWrite("Número no encontrado en la lista." & @LF)
EndIf
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Re: Comparar Datos
Hola Ximorro.
Ya lo he hecho del modo "Picapiedra", , buscado con If /Then en cada uno de los posibles resultados.
No obstante, "Funciona".
Tu respuesta es lo que estaba buscando. Algo más sutil.
Probaré con ella. Muchisimas Gracias.
Ya lo he hecho del modo "Picapiedra", , buscado con If /Then en cada uno de los posibles resultados.
No obstante, "Funciona".
Tu respuesta es lo que estaba buscando. Algo más sutil.
Probaré con ella. Muchisimas Gracias.
- BasicOs
- Site Admin
- Mensajes: 2091
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Re: Comparar Datos
Ciertamente el IF/THEN si te funciona, puedes aprender e ir cogiendo parte del otro código.Autoiter escribió:Hola Ximorro.
Ya lo he hecho del modo "Picapiedra", , buscado con If /Then en cada uno de los posibles resultados.
No obstante, "Funciona".
Tu respuesta es lo que estaba buscando. Algo más sutil.
Probaré con ella. Muchisimas Gracias.
Desde algo tan sencillo como if-then y el while/wend, puedes hacer casi cualquier cosa, y luego puedes hacer cosas más "vistosas" o derivarlo y ahorrar lineas de código haciendo multiples funciones o usando otros comandos, estos comandos al final son funciones de funciones de otras funciones. Eso es la ventaja del lenguaje que te permite adaptarlo a tus necesidades o complejidad.
No necesitas hacerlo de golpe, sino según lo vayas asimilando y comprendiendo,
Felicidades por conseguirlo de una manera o de otra.
Salu22:)
- Ximorro
- Profesional del Autoit
- Mensajes: 1500
- Registrado: 10 Jul 2009, 12:35
- Ubicación: Castellón, España
Re: Comparar Datos
Muy bien así se aprende.
Te recomiendo probar el sistema de la matriz porque ahí es más cómodo ampliar la lista con valores nuevos, por ejemplo. Y el código queda más elegante y compacto. Por supuesto si tienes problemas para adaptarlo sólo tienes que decirlo.
Ojo al declarar la matriz, cuando se hace inicializándola con los valores hay que decir cuántos elementos tiene:
Global $lista[6] = [12, 45, 67, 89, 13, 47]
Pero si pongo 4:
Global $lista[4] = [12, 45, 67, 47]
Si pongo 100:
Global $lista[100] = [12, 45, 67, 89, 13, 47,... (hasta los 100 valores)]
Eso sí, cuando se accede a los valores de una matriz, el primer elemento está en la posición 0 (CERO), así que el último está en la posición "número de elementos menos uno".
Ya nos dirás.
Te recomiendo probar el sistema de la matriz porque ahí es más cómodo ampliar la lista con valores nuevos, por ejemplo. Y el código queda más elegante y compacto. Por supuesto si tienes problemas para adaptarlo sólo tienes que decirlo.
Ojo al declarar la matriz, cuando se hace inicializándola con los valores hay que decir cuántos elementos tiene:
Global $lista[6] = [12, 45, 67, 89, 13, 47]
Pero si pongo 4:
Global $lista[4] = [12, 45, 67, 47]
Si pongo 100:
Global $lista[100] = [12, 45, 67, 89, 13, 47,... (hasta los 100 valores)]
Eso sí, cuando se accede a los valores de una matriz, el primer elemento está en la posición 0 (CERO), así que el último está en la posición "número de elementos menos uno".
Ya nos dirás.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Re: Comparar Datos
Gracias BasicOs y Ximorro. Su ayuda fué muy importante.
En cuanto se me pase un poco la ansiedad de ir viendo los resultados saliendo en las ventanitas, me pondré a mejorar el código con sus consejos.
En cuanto se me pase un poco la ansiedad de ir viendo los resultados saliendo en las ventanitas, me pondré a mejorar el código con sus consejos.