Programa para comparar filas de Bytes Topic is solved

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

Moderator: Flipeador

Archa

Programa para comparar filas de Bytes  Topic is solved

Post by Archa » 06 Jul 2022, 01:33

Buenos días,

Estoy haciendo un programa para comparar filas de Bytes. Creas un txt, pegas las filas de bytes y en el mismo txt te devuelve el resultado. Si toda la columna es el mismo número te devuelve dicho número, sino devuelve "?".
Ejemplo: 01 02 03
01 05 06
01 08 09
Resultado: 01 "?" "?"
Os comparto el programa, que funciona para una matriz de 3 x 3 como la del ejemplo.
Lo que querría es hacer un programa que funcionara con cualquier cantidad de bytes, no sólo para 9 valores.

Code: Select all

e := 0

FileAppend, `n, %A_ScriptDir%\Nueve valores.txt

FileRead, Contenido, %A_ScriptDir%\Nueve valores.txt

loop, 3
{

StringGetPos, EnterPos%e%, Contenido, `n, L%e%				;EnterPos0 = 0 ;EnterPos1 = 9 ;EnterPos2 = 19
EnterPosE := EnterPos%e%
;FileAppend, EnterPos%e% = %EnterPosE%`n, %A_ScriptDir%\Output.txt
StringMid, OutputE%e%, Contenido, EnterPos%e% + 2, 2			;OutputE0 = 01 ;OutputE1 = 04 ;OutputE2 = 07

OutputE := OutputE%e%
FileAppend, OutputE%e% = %OutputE%`n, %A_ScriptDir%\Output.txt

e := e + 1
}

if (OutputE0 = OutputE1) && (OutputE0 = OutputE2) && (OutputE1 = OutputE2) ;<---Quiero hacer esto pero para más de 3 valores, infinitos valores
{
	FileAppend, %OutputE0%%A_space%, %A_ScriptDir%\Nueve valores.txt
}
else
{
	FileAppend, "?"%A_space%, %A_ScriptDir%\Nueve valores.txt
}

;------------------------------------------------------------------------------------------------------------------------------------
;El problema lo tengo justo aqui arriba

StringGetPos, SpacePos1, Contenido, %A_Space%, L1			;SpacePos1 = 2
StringMid, OutputVar2, Contenido, SpacePos1 + 2, 2			;OutputVar2= 02
FileAppend, OutputVar2 = %OutputVar2%`n, %A_ScriptDir%\Output.txt

StringGetPos, SpacePos3, Contenido, %A_Space%, L3			;SpacePos3 = 12
StringMid, OutputVar5, Contenido, SpacePos3 + 2, 2			;OutputVar5 = 05
FileAppend, OutputVar5 = %OutputVar5%`n, %A_ScriptDir%\Output.txt

StringGetPos, SpacePos5, Contenido, %A_Space%, L5			;SpacePos5 = 22
StringMid, OutputVar8, Contenido, SpacePos5 + 2, 2			;OutputVar8 = 08
FileAppend, OutputVar8 = %OutputVar8%`n, %A_ScriptDir%\Output.txt

if (OutputVar2 = OutputVar5) && (OutputVar2 = OutputVar8) && (OutputVar5 = OutputVar8)
{
	FileAppend, %OutputVar2%%A_space%, %A_ScriptDir%\Nueve valores.txt
}
else
{
	FileAppend, "?"%A_space%, %A_ScriptDir%\Nueve valores.txt
}

StringGetPos, SpacePos2, Contenido, %A_Space%, L2			;SpacePos2 = 5
StringMid, OutputVar3, Contenido, SpacePos2 + 2, 2			;OutputVar3= 09
FileAppend, OutputVar3 = %OutputVar3%`n, %A_ScriptDir%\Output.txt

StringGetPos, SpacePos4, Contenido, %A_Space%, L4			;SpacePos4 = 15
StringMid, OutputVar6, Contenido, SpacePos4 + 2, 2			;OutputVar6 = 06
FileAppend, OutputVar6 = %OutputVar6%`n, %A_ScriptDir%\Output.txt

StringGetPos, SpacePos6, Contenido, %A_Space%, L6			;SpacePos6 = 25
StringMid, OutputVar9, Contenido, SpacePos6 + 2, 2			;OutputVar9 = 09
FileAppend, OutputVar9 = %OutputVar9%`n, %A_ScriptDir%\Output.txt

if (OutputVar3 = OutputVar6) && (OutputVar3 = OutputVar9) && (OutputVar6 = OutputVar9)
{
	FileAppend, %OutputVar3%%A_space%, %A_ScriptDir%\Nueve valores.txt
}
else
{
	FileAppend, "?"%A_space%, %A_ScriptDir%\Nueve valores.txt
}

[Moderator edit: Added [code][/code] tags.]

Return to “Pedir Ayuda”