Comparar Array

Comparar Array

Postby Frafive » Thu Apr 17, 2008 10:01 am

Hola Amigos

Existe alguna forma de poder comparar el valor de dos array ? el array es de varias dimensiones.


un saludo
Frafive
 
Posts: 189
Joined: Wed Apr 05, 2006 9:48 pm

Re: Comparar Array

Postby mmercado » Thu Apr 17, 2008 12:56 pm

Frafive wrote: Existe alguna forma de poder comparar el valor de dos array ? el array es de varias dimensiones.

Prueba el siguiente código:
Code: Select all  Expand view
//-----------------------------------------------------------------------------------------------------//

Function AComp( aArr1, aArr2 )

   Local nEle

   If Empty( aArr1 ) .and. Empty( aArr2 )
      Return .T.
   ElseIf Empty( aArr1 ) .or. Empty( aArr2 )
      Return .F.
   ElseIf ValType( aArr1 ) != "A" .or. ValType( aArr2 ) != "A"
      Return .F.
   ElseIf Len( aArr1 ) != Len( aArr2 )
      Return .F.
   EndIf

   For nEle := 1 To Len( aArr1 )

      If ValType( aArr1[ nEle ] ) == "A" .and. ! AComp( aArr1[ nEle ], aArr2[ nEle ] )
         Return .F.
      ElseIf ValType( aArr1[ nEle ] ) != ValType( aArr2[ nEle ] )
         Return .F.
      ElseIf ! ( aArr1[ nEle ] == aArr2[ nEle ] )
         Return .F.
      EndIf

   Next

Return .T.

Saludos.

Manuel Mercado
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Postby Frafive » Thu Apr 17, 2008 2:37 pm

Gracias Manuel, pero no me funciona, los array son multidimensional,

array1:=aclone(array)

Meto el array1 en un browse, el usuario puede cambiar cualquier valor del array1, una vez cerrado el browse quiero comprobar si ha cambiado array1.


Un saludo
Frafive
 
Posts: 189
Joined: Wed Apr 05, 2006 9:48 pm

Postby antolin » Thu Apr 17, 2008 4:39 pm

Pasa los array a string y comparalos. Por ejemplo:

cAntes = ASAVE(ARRAY1) Antes del browse
...
cDespues = ASAVE(ARRAY1) Después del browse
...
IF !( cAntes == cDespues )
HAN CANBIADO
ELSE
NO HAN CAMBIADO
ENDIF
...
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
antolin
 
Posts: 498
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Postby mmercado » Thu Apr 17, 2008 4:48 pm

Frafive wrote:Gracias Manuel, pero no me funciona, los array sonmultidimensional

Ya la probaste?, esa función se supone que debería comparar arrays multidimensionales.

Manuel Mercado[/quote]
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 46 guests