lectura de .ini remotamente
lectura de .ini remotamente
Hola. Buenas a todos soy nuevo por estos barrios y nuevo usando autoit, aquí andaré dando toda la guerra que pueda y ayudando en lo que pueda y sepa también.
mi duda es que tengo un scritp que estoy liado con el y en unos comandos de configuración del programa para su funcionamiento los tengo en .ini.
mi pregunta es si se pueden leer los .ini online, direcetamente desde mi servidor sin necesidad de que se descargen, y sin tener que tenerlo en el disco duro de mí ordenador.
mi duda es que tengo un scritp que estoy liado con el y en unos comandos de configuración del programa para su funcionamiento los tengo en .ini.
mi pregunta es si se pueden leer los .ini online, direcetamente desde mi servidor sin necesidad de que se descargen, y sin tener que tenerlo en el disco duro de mí ordenador.
- arkcrew
- Profesional del Autoit
- Mensajes: 506
- Registrado: 28 Sep 2009, 19:17
- Ubicación: Granada, España
- Contactar:
Re: lectura de .ini remotamente
Hola,
Claro que puedes!, simplemente es como leer un archivo de una página web, tienes la función _inetgetsource() que se encuentra en la librería inet.au3.
Puedes ver más información en la ayuda, pero con esa función te garantizo que puedes.
Sería algo como:
#include <INET.au3>
$contenido_ini = _inetgetsource("tudirección.com/ruta_del_ini.ini")
Y almacenaría en esa variable el contenido del ini.
También creo que puedes hacerlo por objetos para leer el código fuente estaba en la ayuda también es cuestión que mires, pon en la ayuda object o algo asi y mira en lso ejemplos que trae y sale.
Puede sincluso probar con la función iniread() y en la unicación especificar la url aver si cuela y te devuelve valores.
Espero ayudarte,
Saludos!
Claro que puedes!, simplemente es como leer un archivo de una página web, tienes la función _inetgetsource() que se encuentra en la librería inet.au3.
Puedes ver más información en la ayuda, pero con esa función te garantizo que puedes.
Sería algo como:
#include <INET.au3>
$contenido_ini = _inetgetsource("tudirección.com/ruta_del_ini.ini")
Y almacenaría en esa variable el contenido del ini.
También creo que puedes hacerlo por objetos para leer el código fuente estaba en la ayuda también es cuestión que mires, pon en la ayuda object o algo asi y mira en lso ejemplos que trae y sale.
Puede sincluso probar con la función iniread() y en la unicación especificar la url aver si cuela y te devuelve valores.
Espero ayudarte,
Saludos!
ArkCrew
http://www.nodluna.blogspot.com
http://www.nodluna.blogspot.com
Re: lectura de .ini remotamente
Muchísimas gracias cuando salga del curro y llege a casa pruevo lo que me comentastes. lo de iniread probé poniendo la url, pero no coló jejeje probaré lo otro que me comentas que tiene muy buena pinta.
luego te comento que tal fue, gracias de nuevo.
luego te comento que tal fue, gracias de nuevo.
- arkcrew
- Profesional del Autoit
- Mensajes: 506
- Registrado: 28 Sep 2009, 19:17
- Ubicación: Granada, España
- Contactar:
Re: lectura de .ini remotamente
De nada hombre, un placer!
Pues espero tus comentarios a ver que tal :D
Saludos!
Pues espero tus comentarios a ver que tal :D
Saludos!
ArkCrew
http://www.nodluna.blogspot.com
http://www.nodluna.blogspot.com
- arkcrew
- Profesional del Autoit
- Mensajes: 506
- Registrado: 28 Sep 2009, 19:17
- Ubicación: Granada, España
- Contactar:
Re: lectura de .ini remotamente
Hola de nuevo,
Busqué algo de información acerca de tu tema, y se te olvidó mirar en le foro ingles!!! Ha sido buscar, read an ini file online on autoit y encontrar tu resultado xD
Te lo dejo aquí y te lo explico:
La función es similar al iniread, simplemente, por lógica, al leer el contenido web no puedes trabajar como si fuera un archivo ini sino que trabajas con un archivo con texto plano por lo que la función utiliza las expresiones regulares para operar como si se tratase de un archivo ini, en realidad da exactamente igual te va a operar igual, pero quería explicarte un poco como funcionaba.
Para obtener resultados, es muy simple, basta con llamar a la función de manera muy similar a la función iniread, pasas los parámetros:
Dirección,Sección y Clave_sección
Supongamos un ini que contenga idiomas con la estructura:
$s_string = _InetIniRead("url", "seccion", "clave")
ConsoleWrite($s_string & @CRLF)
Con esto puedes ver en la parte de depuración el texto que va obteniendo, devolviendote un -1 en caso de no tener resultados.
Saludos!
Busqué algo de información acerca de tu tema, y se te olvidó mirar en le foro ingles!!! Ha sido buscar, read an ini file online on autoit y encontrar tu resultado xD
Te lo dejo aquí y te lo explico:
Código: Seleccionar todo
#include <inet.au3>
Func _InetIniRead($s_url, $v_section, $v_key, $v_default = -1)
If $v_default = -1 Or $v_default = Default Then $v_default = ""
Local $s_text = _INetGetSource($s_url)
If $s_text = "" Then Return SetError(1, 0, $v_default)
$s_text = @CRLF & $s_text & @CRLF
$v_section = StringStripWS($v_section, 7)
Local $a_data = StringRegExp($s_text, "(?s)(?i)\n\s*\[\s*" & $v_section & "\s*\]\s*\r\n(.*?)(?m:\[|\z)", 3)
If IsArray($a_data) = 0 Then Return SetError(2, 0, $v_default)
Local $a_read = StringRegExp(@LF & $a_data[0], "(?s)(?i)\n\s*" & $v_key & "\s*=(.*?)\r", 1)
If IsArray($a_read) = 0 Then Return SetError(3, 0, $v_default)
Return $a_read[0]
EndFunc
Para obtener resultados, es muy simple, basta con llamar a la función de manera muy similar a la función iniread, pasas los parámetros:
Dirección,Sección y Clave_sección
Supongamos un ini que contenga idiomas con la estructura:
Pues, para leer ese "hola", llamaríamos a la función como si tratásemos con un ini normal, en un ini diríamos; Iniread(Ruta,"esp","01","") y nos devolvería hola, pues aqui, al llamar a la función, lo haríamos: _InetIniRead(url, "esp", "01") y si eso lo almacenamos en una variable, pues podemos acceder a ese texto, te recomiendo que lances la función asi mientras la estés probando:[esp]
01=Hola
$s_string = _InetIniRead("url", "seccion", "clave")
ConsoleWrite($s_string & @CRLF)
Con esto puedes ver en la parte de depuración el texto que va obteniendo, devolviendote un -1 en caso de no tener resultados.
Saludos!
ArkCrew
http://www.nodluna.blogspot.com
http://www.nodluna.blogspot.com
Re: lectura de .ini remotamente
Ok entendido, gracias de verdad por la ayuda y tomarte la molestia de explicarmelo, por que lo del ini se resistía jejeje, luego probaré y te comento.
Re: lectura de .ini remotamente
no consigo hacerlo funcionar.
te explico la situación mejor, el programa es para pinchar en pixel y queremos usarlos unos amigos y yo, pero el problema que hay es que cada "X" tiempo cambian los colores, entonces mi pensamiento era de que en un servidor estuviera el ini al que yo tengo acceso, y cambiando el código del ini, cuando conectaran mis amigos el programa se les cargue el ini directamente del servidor, pero que no se quedara almacenado nada de nada el ini en sus ordenadores.
ahora esto es lo que quiero hacer con el código:
este seria el código simple que luego mas abajo el programa cuando busca pixel, busca la referencia de $BoxColor y $secColor y ve el código de color y pincha.
bien ahora mi idea es modificar esas 2 lineas para que las coja del ini, con el ini en el ordenador funciona 100%
dejándolo el código dentro del ini asi:
ahora donde me lio es que el scritp no pierda la referencia de $BoxColor y $secColor y que lo lea sin descargarlo.
te explico la situación mejor, el programa es para pinchar en pixel y queremos usarlos unos amigos y yo, pero el problema que hay es que cada "X" tiempo cambian los colores, entonces mi pensamiento era de que en un servidor estuviera el ini al que yo tengo acceso, y cambiando el código del ini, cuando conectaran mis amigos el programa se les cargue el ini directamente del servidor, pero que no se quedara almacenado nada de nada el ini en sus ordenadores.
ahora esto es lo que quiero hacer con el código:
Código: Seleccionar todo
Global $BoxColor = 0X00001
Global $SecColor = 0X00000
bien ahora mi idea es modificar esas 2 lineas para que las coja del ini, con el ini en el ordenador funciona 100%
dejándolo el código dentro del ini asi:
Código: Seleccionar todo
[Color]
Color1=0x000001
Color2=0x000000
- arkcrew
- Profesional del Autoit
- Mensajes: 506
- Registrado: 28 Sep 2009, 19:17
- Ubicación: Granada, España
- Contactar:
Re: lectura de .ini remotamente
Hola,
Pues muy simple,
Global $BoxColor = _InetIniRead("url", "Color", "color1")
Global $SecColor = _InetIniRead("url", "Color", "color2")
Con eso el programa cargará los datos que tenga el ini, al cual debes especificar la url de donde lo tienes almacenado y si esos colores se van actualizando, pues mete eso en un bucle y asi se te va actualizando la variable con los nuevos valores.
Saludos!
Edito:
Profundizo en mi explicación:
Desglosemos, tienes en un lado tu ini alojado en una web o donde quieras y ese ini tu lo actualizas, el ini cumple la estructura que has citado.
Por otra parte tenemos nuestro programa, que pincha en los sitios especificados en el ini, llamemosle cliente.
Pues bien, si cada X camcbia, pues he de entender que el ini lo actualizas cuando cambia asi que eso lo dejamos aparte todo el rato. debes saber cada cuanto tiempo cambia para clickar, aunque en realidad es indiferente puesto que supongo que las pulsaciones las haces cada x tiempo y como actualzias el ini es indiferente,
Lo que debes tener claro, es que la variable que almacena esas coordenadas no va a tener un valor fijo puesto que estas van a depender del valor del ini, pero si les das el valor inicial de la función sin meterlo en un bucle, lo que va a sucederte es que ese valor no va a cambiar, por lo que debes tener claro cuanto tiempopasa entre click y click para definir el bucle, te pongo un ejemplo, pongamos que clickas cada 3 segundos:
;Codigo:
Global $BoxColor, $SecColor
while 1
$BoxColor = _InetIniRead("url", "Color", "color1")
$SecColor = _InetIniRead("url", "Color", "color2")
:Codigo para pulsar
Sleep(3000)
wend
Con esto el programa llama la función y actualiza las variables pulsa en las coordenadas obtenidas y espera tres segundos para repetir lo anteriormente dicho.
Espero ser claro.
Saludos de nuevo!
Pues muy simple,
Global $BoxColor = _InetIniRead("url", "Color", "color1")
Global $SecColor = _InetIniRead("url", "Color", "color2")
Con eso el programa cargará los datos que tenga el ini, al cual debes especificar la url de donde lo tienes almacenado y si esos colores se van actualizando, pues mete eso en un bucle y asi se te va actualizando la variable con los nuevos valores.
Saludos!
Edito:
Profundizo en mi explicación:
Desglosemos, tienes en un lado tu ini alojado en una web o donde quieras y ese ini tu lo actualizas, el ini cumple la estructura que has citado.
Por otra parte tenemos nuestro programa, que pincha en los sitios especificados en el ini, llamemosle cliente.
Pues bien, si cada X camcbia, pues he de entender que el ini lo actualizas cuando cambia asi que eso lo dejamos aparte todo el rato. debes saber cada cuanto tiempo cambia para clickar, aunque en realidad es indiferente puesto que supongo que las pulsaciones las haces cada x tiempo y como actualzias el ini es indiferente,
Lo que debes tener claro, es que la variable que almacena esas coordenadas no va a tener un valor fijo puesto que estas van a depender del valor del ini, pero si les das el valor inicial de la función sin meterlo en un bucle, lo que va a sucederte es que ese valor no va a cambiar, por lo que debes tener claro cuanto tiempopasa entre click y click para definir el bucle, te pongo un ejemplo, pongamos que clickas cada 3 segundos:
;Codigo:
Global $BoxColor, $SecColor
while 1
$BoxColor = _InetIniRead("url", "Color", "color1")
$SecColor = _InetIniRead("url", "Color", "color2")
:Codigo para pulsar
Sleep(3000)
wend
Con esto el programa llama la función y actualiza las variables pulsa en las coordenadas obtenidas y espera tres segundos para repetir lo anteriormente dicho.
Espero ser claro.
Saludos de nuevo!
ArkCrew
http://www.nodluna.blogspot.com
http://www.nodluna.blogspot.com
Re: lectura de .ini remotamente
Mañana lo pruebo de nuevo pero me parece que el código lo probe como me as puesto y no me funciono, al probarlo me tiro error la consola por poner las opciones de lo del color, color1, y no cargo el script, y luego probe y puse 2 ini con solo 1 código de color en cada uno, y los ini con nombres diferentes en cada ini y borre las opciones de color, color1 y nada de nada.
Ando desesperado con esto jejeje, y gracias por tu paciencia.
Ando desesperado con esto jejeje, y gracias por tu paciencia.
- arkcrew
- Profesional del Autoit
- Mensajes: 506
- Registrado: 28 Sep 2009, 19:17
- Ubicación: Granada, España
- Contactar:
Re: lectura de .ini remotamente
Buenas,
Pues prueba y postea todo el código, porque ya te digo que funciona más que nada porque me entró la duda y lo probé yo mismo en mi pc instalando el appserv.
Saludos!
Pues prueba y postea todo el código, porque ya te digo que funciona más que nada porque me entró la duda y lo probé yo mismo en mi pc instalando el appserv.
Saludos!
ArkCrew
http://www.nodluna.blogspot.com
http://www.nodluna.blogspot.com
Re: lectura de .ini remotamente
mira el error que me tira es como si el comando no existiera en el programa:
ERROR: _InetIniRead(): undefined function.
ademas que me sale en negro totalmente el _InetIniRead, no tendre que instalar algo que me falte en el autoit???
ERROR: _InetIniRead(): undefined function.
ademas que me sale en negro totalmente el _InetIniRead, no tendre que instalar algo que me falte en el autoit???
- arkcrew
- Profesional del Autoit
- Mensajes: 506
- Registrado: 28 Sep 2009, 19:17
- Ubicación: Granada, España
- Contactar:
Re: lectura de .ini remotamente
Hola,
Quizás sea que no incluiste la librería inet.au3.
Añade a tu código: #include <INET.au3> y me cuentas ;)
Saludos!
Quizás sea que no incluiste la librería inet.au3.
Añade a tu código: #include <INET.au3> y me cuentas ;)
Saludos!
ArkCrew
http://www.nodluna.blogspot.com
http://www.nodluna.blogspot.com
Re: lectura de .ini remotamente
esto es como lo tengo al principio estab bien no?
Código: Seleccionar todo
#include <GuiConstants.au3>
#include <GuiConstantsEx.au3>
#include <NetShare.au3>
#include <String.au3>
#include <Array.au3>
#include <WindowsConstants.au3>
#include <INET.au3>
- arkcrew
- Profesional del Autoit
- Mensajes: 506
- Registrado: 28 Sep 2009, 19:17
- Ubicación: Granada, España
- Contactar:
Re: lectura de .ini remotamente
Hola,
Si , si que está bien, pero, hazme el favor de postear todo el código porque sino no avanzamos macho.
Saludos!
Si , si que está bien, pero, hazme el favor de postear todo el código porque sino no avanzamos macho.
Saludos!
ArkCrew
http://www.nodluna.blogspot.com
http://www.nodluna.blogspot.com
Re: lectura de .ini remotamente
ya encontre el fallo , le faltaba parte del codigo de inetiniread, al archivo inet.au3.
Asi que puse el codigo completo de arriba y funcioanado.
arkcrew por mi parte te ganastes el cielo con esa paciencia que tienes jejeje, muchisimas gracias por tu ayuda y te debo una cervecita bien fria
Asi que puse el codigo completo de arriba y funcioanado.
arkcrew por mi parte te ganastes el cielo con esa paciencia que tienes jejeje, muchisimas gracias por tu ayuda y te debo una cervecita bien fria
- arkcrew
- Profesional del Autoit
- Mensajes: 506
- Registrado: 28 Sep 2009, 19:17
- Ubicación: Granada, España
- Contactar:
Re: lectura de .ini remotamente
Hola,
JAJAJ de nada hombre un placer ayudarte! y no te hago ascos a una buena jarrita congelada jajajajja.
Espero que le des caña a tu aplicación y ya sabes, si tienes más dudas por aqui estamos todos los usuarios del foro por si te ponemos ayudar.
Saludos!
JAJAJ de nada hombre un placer ayudarte! y no te hago ascos a una buena jarrita congelada jajajajja.
Espero que le des caña a tu aplicación y ya sabes, si tienes más dudas por aqui estamos todos los usuarios del foro por si te ponemos ayudar.
Saludos!
ArkCrew
http://www.nodluna.blogspot.com
http://www.nodluna.blogspot.com
Re: lectura de .ini remotamente
Ok. Por aquí andaré aprendiendo a usar mejor él autoit que la verdad tiene mucho potencial y ayudar siempre en lo que pueda, aunque ahora mismo sepa poco jejeje.
un saludo.
un saludo.