IniWrite & IniRead

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

Moderator: Flipeador

Alepaff
Posts: 28
Joined: 17 Feb 2016, 21:03

IniWrite & IniRead

28 Nov 2016, 14:35

Hola
Aca hay una parte de mi script, me gustaria saber porque no me funciona.
Al apretar F1 se va a leer el contenido del archivo .ini, la sección entera, llamada "Registros"
Al apretar F2 se va a escribir valores dentro del archivo .ini
Al apretar F3 se va a reiniciar el script
Lo que quiero lograr aqui es un registro, que cuando yo escriba variables para un archivo .ini, una vez escritos al reiniciar el script estas variables se lean y se pueda seguir añadiendo numeros a las variables, que continuen desde el numero en que estaban,
El problema es que, cuando abro el script y empiezo a escribir nuevos registros en el archivo .ini, (Apretando F2) este una vez que es reiniciado y se vuelven a leer las variables, al momento de apretar F2, para que continue añadiendo valores, en lugar de tomar los valores ya leidos al apretar la tecla F1, en lugar de continuar, vuelve a empezar.
Por ejemplo, si apreto F2, unas tres veces, nos quedarían valores de 3, 6, y 9. Supuestamente cuando reinicie el script (Tecla F3) y una vez hecho esto aprete F1, para leer el contenido del archivo .ini. Debería de tomar los valores y continuar, no volver a empezar.
Aqui hay una parte de mi script, simplificado...

Code: Select all


F1::
Goto Leer
Return

F2::
Goto Escribir
Return

F3::
Reload
Return


Leer:
{
IniRead, RegistroX, %A_Desktop%\R.ini, Registros
Msgbox %RegistroX%
return
}


Escribir:
{
Man += 1
Men += 2
Min += 3
IniWrite, %Man%, %A_Desktop%\R.ini, Registros, Manx
IniWrite, %Men%, %A_Desktop%\R.ini, Registros, Menx
IniWrite, %Min%, %A_Desktop%\R.ini, Registros, Minx
Msgbox %Man%`n%Men%`n%Min%
return
}
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: IniWrite & IniRead

28 Nov 2016, 19:08

Hola,
Aquí lo tienes modificado:

Code: Select all

F1::Gosub Leer

F2::Gosub Escribir

F3::Reload

;##############################################################################################################################################

Leer:
;Leemos todos las claves en la sección 'Registros' en el archivo .ini
IniRead, Registros, %A_Desktop%\R.ini, Registros
	
;Leemos las claves una por una y asignamos sus valores a variables con el mismo nombre que la clave
Loop, Parse, % Registros, `n
{
	;leemos el valor asignado a la clave
	IniRead, Valor, %A_Desktop%\R.ini, Registros, % A_LoopField
	
	;separamos el nombre de la clave y su valor (clave=valor)
	Clave := StrSplit(A_LoopField, "=", A_Space A_Tab).1
	Valor := StrSplit(A_LoopField, "=", A_Space A_Tab).2
	
	;creamos la variable y le asignamos el valor de la clave leída
	%Clave% := Valor
}
	
MsgBox % Registros
return

Escribir:
;Aumentamos el valor da las variables
Man += 1
Men += 2
Min += 3
	
;actualizamos el archivo
IniWrite, %Man%, %A_Desktop%\R.ini, Registros, Man
IniWrite, %Men%, %A_Desktop%\R.ini, Registros, Men
IniWrite, %Min%, %A_Desktop%\R.ini, Registros, Min
return
Alepaff
Posts: 28
Joined: 17 Feb 2016, 21:03

Re: IniWrite & IniRead

02 Dec 2016, 10:02

Muchas gracias Flipeador por tomarte tu tiempo, me haz ayudado mucho y a muchos de la comunidad de AutoHotKey. De verdad se aprecia. ;)
Saludos.

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 15 guests