Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/08/2008, 10:52
Avatar de ciisteado
ciisteado
 
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 0
De acuerdo Respuesta: Problema al unir dos arreglos...

Hola:

Bueno pues, por algo son los Master's del ASP... Shiryu_Libra, u_goldman gracias por sus recomendaciones y si, he resuelto el problema simplificando en mucho el código original, despues de un rato de "Paciencia extrema" llegue a lo siguiente:

Código HTML:
<%
	Dim Arreglo1
	Dim Arreglo2
	Dim Arreglo3(),TempArray()
        Dim Elemento
	Dim i,j,k,l,m,n,p,q
		
	Arreglo1=Array(9,4,8)
	Arreglo2=Array(1,9,4,7,2,6,3,5,8)

	inicio=UBound(Arreglo2)+1 'Extrae el índice mayor de "Arreglo2()" que en el ejemplo sería 8, se le aumenta 1 a ese índice para indicar en donde van a iniciar el siguiente elemento, el índice seria 9
	fin=UBound(Arreglo1)+inicio 'Extrae el índice mayor de "Arreglo1()" que en ejemplo sería 2, se le aumentan el valor de "inicio" para delimitar el nuevo índice mayor de "Arreglo2()"
	
	i=0 ' Llenamos "Arreglo2" con los valores que tenia inicialmente más los valores de "Arreglo1()", para ello ocupamos los valores de "inicio" y "fin"
	for j= inicio to fin
		redim preserve Arreglo2(fin) '"Arreglo2()" crecerá hasta el valor de "fin"(11, para este ejemplo) conservando los valores que tenia previamente asignados
		Arreglo2(j)=Arreglo1(i) 'Cada elemento de "Arreglo1()" lo metemos en "Arreglo2()"
		i=i+1
	next
	
	for j=LBound(Arreglo2) to UBound(Arreglo2) 'Recorremos de principio a fin a "Arreglo2()"
		redim preserve TempArray(j) ' Asigna los valores de "Arreglo2()" a "TempArray()" que servirá para comparar que elementos NO se repiten
		TempArray(j)=Arreglo2(j)
	next
	
	for k=0 to UBound(Arreglo2)	'Recorremos de principio a fin a "Arreglo2()"
		m=0
		for l=0 to UBound(Arreglo2)	'Recorremos de principio a fin a "Arreglo2()"
			if Arreglo2(k)=TempArray(m) and l<>k then	'Verifica si el elemento de "Arreglo2()" es igual al elemento de "TempArray()" y ademas estan en distinta posición
				Arreglo2(l)="" 	'Elimina ambos valores de "Arreglo2()"
				Arreglo2(k)=""
			end if
			m=m+1
		next
	next
	
	p=0
	For Each Elemento In Arreglo2  ' Por cada elemento de "Arreglo2()" verifica...
        If Elemento <> "" Then 	'Si el elemento contiene datos lo asigna a "Arreglo3()"
			redim preserve Arreglo3(p)
			Arreglo3(p)=Elemento
			p=p+1
		end if
    Next
%>
El problema que tenia en el anterior código era a la hora de llenar el "Arreglo3" con los datos de "Arreglo1" y "Arreglo2" cosa innecesaria, pues basto acomodar los valores del For y solo meter los datos de "Arreglo1" en "Arreglo2" conservando los elementos que previamente tenia "Arreglo2", la parte importante es esta(creo yo ):

inicio=UBound(Arreglo2)+1
fin=UBound(Arreglo1)+inicio

i=0
for j= inicio to fin
redim preserve Arreglo2(fin)
Arreglo2(j)=Arreglo1(i)
i=i+1
next

Por lo demas la lógica es practicamente la misma, cualquier duda bastará con leer el código y tratar de entenderlo, sino es suficiente, postear su inquietud aqui mismo sera lo mejor....

Asi pues, dejo la solución a consideración de los Moderadores y para cualquiera que tenga un problema de iguales similitudes(esto es lo bueno de los foros )

Saludos y una ves mas gracias a los que colaboraron: Shiryu_Libra y u_goldman