Variables dinamicas

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.
logiteche
Posts: 1
Joined: 02 May 2019, 13:29

Variables dinamicas

03 May 2019, 11:50

Hola.

Estoy intentando definir una variable que dependa de la posición de un loop, pero cuando necesito llamar el contenido de la variable (por ejemplo ver lo que está almacenado en cada variable en un msgbox) no me funciona. Creo que he estado haciendo algo mal, me podeis ayudar?.
Este es el código que estoy usando.

Code: Select all

Loop, read, C:\FTPSonometro\Script\Resources\Listado_de_Equipos.txt
{
 posi = %A_Index%
     Loop, parse, A_LoopReadLine, %A_Tab%
    {
          tmp =SLM%posi% 
         %tmp% = %A_LoopField%
       
         Path%tmp% := "C:\FTPSonometro\Logger\%A_LoopField%\MY_LOC" ;esto debe crearme una variable del tipo "PathSLM1", "PathrSLM2", etc, y en cada una se almacena la ruta respectiva

    MsgBox, %Path%%tmp% ; ACA TENGO EL ERROR SEGURO

}

}
Alguna idea?
GRacias
swagfag
Posts: 2400
Joined: 11 Jan 2017, 17:59

Re: Variables dinamicas

04 May 2019, 12:30

Code: Select all

Loop, read, C:\FTPSonometro\Script\Resources\Listado_de_Equipos.txt
{
	posi = %A_Index%
	Loop, parse, A_LoopReadLine, %A_Tab%
	{
		tmp =SLM%posi% 
		%tmp% = %A_LoopField%

		Path%tmp% := "C:\FTPSonometro\Logger\%A_LoopField%\MY_LOC" ;esto debe crearme una variable del tipo "PathSLM1", "PathrSLM2", etc, y en cada una se almacena la ruta respectiva

		var = %Path%%tmp% ; <<<<<
		MsgBox, %var% ; ACA TENGO EL ERROR SEGURO

	}
}
although this is a very no bueno way of coding
User avatar
Flipeador
Posts: 1079
Joined: 15 Nov 2014, 21:31
GitHub: Flipeador
Location: Argentina
Contact:

Re: Variables dinamicas

04 May 2019, 14:15

Hola, esta forma de escribir código es muy poco recomendable, dificulta mucho la lectura y la detección de errores. Mejor usa objetos como Arrays o Associative Arrays.
No se entiende cual es el uso que le quieres dar a esas variables exactamente, ejemplo:

Code: Select all

PathSLM := []

loop read, C:\FTPSonometro\Script\Resources\Listado_de_Equipos.txt
{
    index := A_Index

    loop parse, A_LoopReadLine, `t
        PathSLM[A_Index] := "C:\FTPSonometro\Logger\" . A_LoopField . "\MY_LOC"
    
    for k, v in PathSLM
        MsgBox % k . ": " . v
}

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 6 guests