Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/08/2008, 16:03
Avatar de ciisteado
ciisteado
 
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 0
Exclamación Problema al unir dos arreglos...

Hola a todos:

Tengo este problema a la hora de eliminar los elementos repetidos de un arreglo mediante esta funcion...
Código HTML:
<%
	Arreglo2=Array(1,9,4,7,2,6,3,5,8)
	Arreglo3=Array(9,4)

	'Lleno el "Arreglox" con los datos de "Arreglo2" y "Arreglo3"
	For h=LBound(Arreglo2) to UBound(Arreglo2)
		redim preserve Arreglox(v)
		Arreglox(v)=Arreglo2(h)
		v=v+1
		for p=LBound(Arreglo3) to UBound(Arreglo3)
			redim preserve Arreglox(f)
			Arreglox(f)=Arreglo3(p)
			f=f+1
		next
	next
	'A los datos de "Arreglox" les elimino los espacios en blanco que encuentre
	for g=LBound(Arreglox) to UBound(Arreglox)
		clavedocs=Arreglox(g)
		clavedoc=Trim(clavedocs)
		redim preserve Arreglo(gg)	'Una ves que he quitado los espacios en blanco, cada dato lo asigno a "Arreglo"
		Arreglo(gg)=clavedoc
		gg=gg+1
	next
	
	For i = LBound(Arreglo) To UBound(Arreglo)   
		ReDim Preserve TempArray(i)   'Redimensionamos el Arreglo temporal y preservamos el valor   
		TempArray(i) = Arreglo(i)   'Asignamos al array temporal el valor del otro arreglo
	Next
	'Verifica si hay elementos repetidos
	For x=0 To UBound(Arreglo)   
        z=0   
        For y=0 To UBound(Arreglo)   
            If Arreglo(x) = TempArray(z) And y <> x Then   'Si el elemento del arreglo es igual al arreglo temporal
                Arreglo(y) = "" 'Entonces Eliminamos el valor duplicado
				Arreglo(x) = ""   
            End If   
            z=z+1   
        Next    
    Next 
	
	'Recorremos el array resultante
    For Each Elemento In Arreglo   
        If Elemento <> "" Then 'Si el elemento es distinto de una cadena vacia, sea asigna el valor a "docs1"
			redim preserve docs1(b)
			docs1(b)=Elemento
			b=b+1
		end if
    Next

%>
Haciendo esta función el resultado correcto que debería mostrar sería:

Arreglo 2: 1,9,4,7,2,6,3,5,8

Arreglo 3: 9,4

Arreglo: 9,4,1,9,4,7,2,6,3,5,8 (la union de los dos arreglos anteriores)

Arreglo Final: 1,7,2,6,3,5,8 (solo los elementos que NO se repiten)

Pero por alguna razón el resultado me lo muestra asi:
B]Arreglo 2:[/B] 1,9,4,7,2,6,3,5,8

Arreglo 3: 9,4

Arreglo: 1,4,1,9,4,7,2,6,3,5,8

Arreglo Final: 9,7,2,6,3,5,8

El problema esta en que a la hora de unir los dos arreglos, siempre toma Arreglo 3[0]=1 y no el valor 9 como en este ejemplo deberia tomar... creo que el detalle esta a la hora de unir los dos arreglos por que la eliminacion de los elementos repetidos la realiza bien... ¿¿No sé si me expliqué...??

Cabe mencionar que los elementos de Arreglo 3 deben ser forsozamente alguno(s) de los elementos del Arreglo 2...

Asi pues, espero entiendan el problema que se me presenta y de ser asi ayudarme a resolverlo... agradeceré cualquier idea y ayuda...

Saludos y gracias a todos....