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.]