Tema: Matrices
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2010, 08:37
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Matrices

Hola

El caso es que la matríz ArrSinRepeticion contiene un valor más del que por lógica debería de tener

Código ASP:
Ver original
  1. <&#37;
  2. Dim ArrOriginal, ArrSinRepeticion(), i, comparacion, x
  3. ArrOriginal = Array(8,3,5,2,9,2,3,5,8)
  4. Redim preserve ArrSinRepeticion(1)
  5. ArrSinRepeticion(0) = ArrOriginal(0)
  6. For i = 0 to (UBound(ArrOriginal)-1)
  7. comparacion = 0
  8.  
  9. For x = 0 to (UBound(ArrSinRepeticion)-1)
  10. comparacion = StrComp(ArrSinRepeticion(x), ArrOriginal(i), 1)
  11. IF (comparacion = 0) then ' está repetido
  12. Exit For 'x
  13. END IF
  14. Next 'x
  15. IF (comparacion <> 0) then
  16. 'Response.Write UBound(ArrSinRepeticion)+1 &"<br />"
  17. Redim preserve ArrSinRepeticion(UBound(ArrSinRepeticion)+1)
  18. ArrSinRepeticion(UBound(ArrSinRepeticion)-1) = ArrOriginal(i)
  19. Response.Write "(" & UBound(ArrSinRepeticion)-1 & ") => " & ArrOriginal(i) &" "
  20. END IF
  21. Next 'i
  22.  
  23. Response.Write "<br /><br /><b>Arreglo Original</b><br />"
  24. Response.Write Join(ArrOriginal, ", ")
  25. Response.Write "<br /><br /><b>Arreglo Original sin valores duplicados</b><br />"
  26. Response.Write Join(ArrSinRepeticion, ", ")
  27. Response.Write "<br /><br />"
  28. Response.Write ArrSinRepeticion(5)
  29. %>

Tengo este arreglo Array(8,3,5,2,9,2,3,5,8) y lo que quiero hacer, es eliminar los valores repetidos. Es decir el arreglo ya limpio quedaría Array(8,3,5,2,9). Esto lo viene a demostrar esta prueba de escritorio Response.Write "(" & UBound(ArrSinRepeticion)-1 & ") => " & ArrOriginal(i) &" " que imprime esto (1) => 3 (2) => 5 (3) => 2 (4) => 9 . Pués al parecer no es así, ya que cuando hago el Join, esto es lo que imprime 8, 3, 5, 2, 9, con esa coma al final. Lo que me hace pensar que el subindice llega hasta 5. Esto lo demuestra Response.Write ArrSinRepeticion(5) que en lugar de dar error, puesto que estaría fuera del intervalo, imprime un valor vacío

¿Alguna idea?

Gracias
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />