Problemas con variables Topic is solved

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.

Moderator: Flipeador

Saiph4728

Problemas con variables

Post by Saiph4728 » 25 Jul 2021, 09:38

Buenas, tengo el siguiente código dentro de una función, las array (log y logfarm) son globales, los datos que extraigo de ellas provienen de un archivo excel y creo que tengo problemas con ellas por que algunos datos a veces van bien y otras van mal o yo ya no se que hacer XD.

En este código de ejemplo:

Code: Select all

Global log[], logfarm[] ; esto es lo que tengo en la cabecera del script, declaradas las dos como globales.

log := ["pepe", "Juan"] ; No es así como los añado, lo hago desde excell pero lo expongo así para que veais el ejemplo con esos valores.
logfarm := [2,1] 

función(2) ; llamada a la función con el parámetro 2

función(vtlog)
          {
			tmp1 := logfarm[vtlog]
			MsgBox % tmp1 ; me da como resultado el valor 1
			tmp2 := log[tmp1] ; Introduce el valor de la posición 1 de log (tmp1) en tmp2
			MsgBox % tmp2  ; me da como resultado null
                        
			MsgBox % log[1] ; en cambio este, que se supone que es lo mismo que MsgBox % tmp2, me da como resultado "Pepe", que es lo que busco.
          }
Es lo que no entiendo y seguro que es algo muy sencillo y no caigo, creo que están definidas de la misma manera y porque una si funciona (tmp1 := logfarm[logfarm] y la otra me da valor null? (tmp2 := log[tmp1].

Los datos de las arrays las extraigo de un archivo excel, no se si será ese el problema o es que defino mal las variables, pero me ocurre con unos datos si y otros no, por lo que he llegado a declarar fijos en el código los que me salen mal y no en el excel para no comerme mas la cabeza y dejar los demás que los extrae bien.

El problema está ahí, en las variables, pero no se porque.
sofista
Posts: 645
Joined: 24 Feb 2020, 13:59
Location: Buenos Aires

Re: Problemas con variables  Topic is solved

Post by sofista » 25 Jul 2021, 10:05

Hola: Sugiero que pruebes esta otra declaración:

Code: Select all

Global log := [], logfarm := []
Los mensajes que se muestran son, sucesivamente, "1", "pepe" y "pepe".
Saiph4728

Re: Problemas con variables

Post by Saiph4728 » 26 Jul 2021, 01:57

sofista wrote:
25 Jul 2021, 10:05
Hola: Sugiero que pruebes esta otra declaración:

Code: Select all

Global log := [], logfarm := []
Los mensajes que se muestran son, sucesivamente, "1", "pepe" y "pepe".
Gracias por responder, si, es lo que deberia salir, pero en mi caso solo saldría impreso "1", null, "pepe", ese es mi problema.
sofista
Posts: 645
Joined: 24 Feb 2020, 13:59
Location: Buenos Aires

Re: Problemas con variables

Post by sofista » 26 Jul 2021, 08:39

Raro. Cuando probé tu código me dio el siguiente mensaje de error

Code: Select all

The following variable name contains an illegal character:
"log[]"
de modo que no obtuve ningún resultado. Al declarar correctamente las globales todo salió como lo mencioné en mi mensaje anterior.

Todo esto lo probé con Windows 10, 64-bit, AutoHotkey 1.1.33.09.

Es posible que en tu sistema algún otro script o aplicación esté interfiriendo, quizás un reinicio lo solucione.

Por ahora no se me ocurre otra cosa.
gmoises
Posts: 74
Joined: 18 Nov 2017, 16:43

Re: Problemas con variables

Post by gmoises » 26 Aug 2021, 20:34

Code: Select all

Global log     := ["pepe", "Juan"]
	,  logfarm := [2,1] 

función(2)

función(vtlog) {
	tmp1 := logfarm[vtlog]
	MsgBox % tmp1        ; 1
	tmp2 := log[tmp1]
	MsgBox % tmp2        ; pepe
	MsgBox % log[1]       ; pepe
}
Post Reply

Return to “Pedir Ayuda”