Olá pessoal,
tem algum jeito fácil para verificar se dois arrays possuem os mesmos elementos?
Obrigado.
MarceloG
a:={'A','B','C'}
b:={'A','B','C'}
if a == b
alert('São iguais!')
endif
comparação de array
Moderador: Moderadores
comparação de array
Não testei.
AEval( aArray1, {|x| QQOut(x) } ) = AEval( aArray2, {|x| QQOut(x) } )
AEval( aArray1, {|x| QQOut(x) } ) = AEval( aArray2, {|x| QQOut(x) } )
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
comparação de array
Olá Marcelo,
Tenho uma função que uso aqui e funciona bem. Veja se é isto que você precisa.
Veja um exemplo que montei:
T+
Tenho uma função que uso aqui e funciona bem. Veja se é isto que você precisa.
Veja um exemplo que montei:
Código: Selecionar todos
function main
local a, b
cls
a:={'A','B','C'}
b:={'A','B','C'}
? "Comparando arrays com elementos tipo STRING"
? hb_valtoexp(a) == hb_valtoexp(b), hb_valtoexp(a) + "==" + hb_valtoexp(b)
? iif( CompArray( a, b ), "Sao iguais!", "Sao Diferentes!" )
? "------------------------------------------------"
a:={'A','B','C'}
b:={'A','B','C','D'}
? hb_valtoexp(a) == hb_valtoexp(b), hb_valtoexp(a) + "==" + hb_valtoexp(b)
? iif( CompArray( a, b ), "Sao iguais!", "Sao Diferentes!" )
? "------------------------------------------------"
? "Comparando arrays com elementos e Sub-Elementos do tipo STRING / NUMERICO"
a:={'A','B','C',{1,2,3,"X"}}
b:={'A','B','C',{1,2,3,"X"}}
? hb_valtoexp(a) == hb_valtoexp(b), hb_valtoexp(a) + "==" + hb_valtoexp(b)
? iif( CompArray( a, b ), "Sao iguais!", "Sao Diferentes!" )
? "------------------------------------------------"
a:={'A','B','C',{1,2,3}}
b:={'A','B','C',{1,2,3,4}}
? hb_valtoexp(a) == hb_valtoexp(b), hb_valtoexp(a) + "==" + hb_valtoexp(b)
? iif( CompArray( a, b ), "Sao iguais!", "Sao Diferentes!" )
? "------------------------------------------------"
wait "Tecle ENTER..."
cls
a:={'A','B','C',{1,2,3,4,"X"}}
b:={'A','B','C',{1,2,3,4,"X"}}
? hb_valtoexp(a) == hb_valtoexp(b), hb_valtoexp(a) + "==" + hb_valtoexp(b)
? iif( CompArray( a, b ), "Sao iguais!", "Sao Diferentes!" )
? "------------------------------------------------"
a:={'A','B','C',{1,2,3,4,"X"}}
b:={'A','B','C',{1,2,3,4,"Z"}}
? hb_valtoexp(a) == hb_valtoexp(b), hb_valtoexp(a) + "==" + hb_valtoexp(b)
? iif( CompArray( a, b ), "Sao iguais!", "Sao Diferentes!" )
? "------------------------------------------------"
a:={'A','B','C',{1,2,3,4,"X",{"a",1}}}
b:={'A','B','C',{1,2,3,4,"X",{"a",1}}}
? hb_valtoexp(a) == hb_valtoexp(b), hb_valtoexp(a) + "==" + hb_valtoexp(b)
? iif( CompArray( a, b ), "Sao iguais!", "Sao Diferentes!" )
? "------------------------------------------------"
a:={'A','B','C',{1,2,3,4,"X",{"a",1}}}
b:={'A','B','C',{1,2,3,4,"X",{"a",2}}}
? hb_valtoexp(a) == hb_valtoexp(b), hb_valtoexp(a) + "==" + hb_valtoexp(b)
? iif( CompArray( a, b ), "Sao iguais!", "Sao Diferentes!" )
return NIL
******************
function CompArray( a1, a2 )
******************
local lRet := .T., v
if valtype(a1) != "A" .or. valtype(a1) != valtype(a2) .or. len(a1) != len(a2)
return .F.
endif
aeval( a1, {|e,i| iif( lRet, lRet := iif(( v := valtype(e)) == "A", CompArray( e, a2[i] ), v == valtype(a2[i]) .and. ( i = 1 .and. upper(hb_valtostr(e)) == upper(hb_valtostr(a2[i])) .or. e == a2[i] ) ), NIL ) } )
return lRet
Rossine.
Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
comparação de array
Tem esta comparação também:
Código: Selecionar todos
aArray1:={"A", "B", "C"}
aArray2:={"A", "B", "C"}
cVar1:=""
cVar2:=""
AEval( aArray1, {|x| cVar1+=x } )
AEval( aArray2, {|x| cVar2+=x } )
IF cVar1 == cVar2
hwg_MsgInfo("Igual")
ENDIF
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
-
MARCELOG
- Usuário Nível 4

- Mensagens: 546
- Registrado em: 15 Mar 2005 16:54
- Localização: Divinópolis/MG
comparação de array
Olá,
resolvi a situação utilizando a função "valtoprg" em relação às arrays.
Obrigado a todos.
MarceloG
resolvi a situação utilizando a função "valtoprg" em relação às arrays.
Obrigado a todos.
MarceloG
Água mole em pedra dura tanto bate que até espirra!

