Ver Mensaje Individual
  #116 (permalink)  
Antiguo 23/09/2009, 15:35
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Biblioteca de Clases,Funciones y Sub-rutinas.

Trabajando con vectores. ¿Como eliminar elementos duplicados, mostrar esos elementos duplicados y contar el número de veces que está duplicado cada elemento?

Código asp:
Ver original
  1. <&#37;
  2. Dim array_origen, contador_limpio, contador_duplicados, x, p
  3. contador_limpio = 0
  4. contador_duplicados = 0
  5. array_origen = Array("oso","perro","león","gato","tigre","perro","león","gato","elefante","gato","perro")
  6. Dim array_limpio()
  7. Dim array_duplicados()
  8. Dim veces_repetidos()
  9.  
  10. Redim preserve array_limpio(1)
  11. Redim preserve array_duplicados(0)
  12.  
  13. Dim Res
  14.     For x = 0 to (UBound(array_origen))
  15.  
  16. Res = 0
  17.         For p = 0 to UBound(array_limpio)
  18.             Res = StrComp(array_origen(x),array_limpio(p),1)
  19.             IF (Res = 0) then
  20.                 Redim preserve array_duplicados(contador_duplicados)
  21.                 array_duplicados(contador_duplicados) = array_origen(x)
  22.                 contador_duplicados = contador_duplicados +1
  23.             Exit For 'p
  24.             END IF
  25.         Next 'p
  26.  
  27.             IF (Res <> 0) then
  28.                 Redim preserve array_limpio(contador_limpio)
  29.                 array_limpio(contador_limpio) = array_origen(x)
  30.                 contador_limpio = contador_limpio +1
  31.             END IF
  32.  
  33.     Next 'x
  34.  
  35.  
  36.  
  37. Dim valoresSOBREbuscar
  38. valoresSOBREbuscar = ""    
  39. Response.write "<b>Este es el vector</b><br />" & Join(array_origen, ", ")
  40. valoresSOBREbuscar = Join(array_origen, ",")
  41.  
  42. Dim valoresAbuscar
  43. valoresAbuscar = ""    
  44. Response.write "<br /><br /><b>Este es el vector una vez eliminando los elemento duplicados</b><br />"  & Join(array_limpio, ", ")
  45. valoresAbuscar = Join(array_limpio, ",")
  46.  
  47. Response.write "<br /><br /><b>Estos son los elemento eliminados</b><br />" & Join(array_duplicados, ", ")
  48.  
  49. Response.write "<br /><br /><b>Número de veces que se repite cada elemento</b><br />"
  50. Dim n, objRegExp, strClave, Coincidencia, cadena, array_cadena, i
  51. Function Encuentra (plbraClave)
  52. array_cadena = Split(plbraClave,",")
  53. For n=0 to UBound(array_cadena)
  54. i = -1
  55. Response.Write "El elemento " & array_cadena(n)
  56. Set objRegExp = new RegExp
  57. With objRegExp
  58.     .Pattern = "\b("&array_cadena(n)&")+\b"
  59.     .IgnoreCase = True
  60.     .Global = True
  61. End With
  62. Set strClave = objRegExp.Execute(valoresSOBREbuscar)
  63. For Each Coincidencia in strClave
  64. i = i +1
  65. Next
  66. Response.Write " se repite : " & i & " veces<br />"
  67. Set strClave = nothing
  68. Set objRegExp = nothing
  69. Next 'n
  70. End Function
  71.  
  72. Response.Write Encuentra(valoresAbuscar)
  73. %>

Suerte
__________________
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;" />

Última edición por Adler; 23/01/2010 a las 15:14 Razón: compactar código