Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: Bazooka en Agosto 28, 2010, 11:42:19 pm
-
Hola estoy trabajando en un proyecto y me he trancado y pido que me ayuden por favor.
El tema es así necesito crear una funcion que me devuelva positivo si hay algun numero en comun en 3 arrays pasados como parametros por ejemplo así:
array1= "5\\12\\15\\23\\30\\37\\47\\48\\50\\57\\64\"
array2= "3\\4\\11\\20\\26\\32\\36\\41\\45\\54\\59\"
array3="8\\16\\17\\29\\31\\35\\40\\49\\51\\56\\69\"
La forma en que las debe ir procesando el programa es así!
1º se genera el array1 (no se compara nada)
2º luego se genera el arra2 hay que compar con el anterior
3º luego el array3 verificar con todos lo anteriores.
Espero me entiende y eche una mano por que me esta superando!!!
-
.
No se si te entendido bien, pero para ello puedes utilizar mi clase cCollectionEx.cls que encontraras 2 post abajo...
Con la propiedad Contains...
Un ej:
If cTemp.Contains(50) Then
MsgBox "Lo contiene"
Else
MsgBox "No lo contiene"
End If
Creas tres cCollectionEx y cuando quieres añadir un Item nuevo miras a ver si esta en las anteriores.
.
Con esto que te he dicho no creo que tengas problemas. ;)
DoEvents¡! :P
-
Gracias lo intenté pero estuve tratando de usar esto y me tira algunos errores! a mi criterio esta muy bueno pero esta demasiado estructurado para usar con un rango determinado de datos y no es muy generica. Y la verdad el tiempo me apremia para ponerme a comprenderla.
-
Ok, mira te he hecho un ejemplo utilizando mi clase cCollectionEx, dime si es lo que buscas, en tal caso solo tendrias que hacer pequeñas modificaciones:
Option Explicit
Option Base 1
Private Sub Form_Load()
Dim cTemp(3) As New cCollectionEx
Dim x As Long, y As Long, n As Long, i As Long
For x = 1 To 3
For y = 1 To 5
Repeat:
i = x
n = RndNum(0, 15)
Do
If cTemp(i).Contains(n) Then GoTo Repeat
i = i - 1
Loop While i > 0
cTemp(x).Add n
Next
Next
'OffTopic : ¡Vivan las ranas! :D
For x = 1 To 3
Debug.Print "------------------------------------------------"
Debug.Print "Contenido de cTemp(" & x & ")"
For y = 1 To cTemp(x).Count
Debug.Print cTemp(x).Item(y)
Next
Debug.Print "------------------------------------------------"
Next
End Sub
Public Function RndNum(ByVal lMinLimit As Long, ByVal lMaxLimit As Long) As Long
Randomize
RndNum = CLng((lMinLimit - lMaxLimit + 1) * Rnd + lMaxLimit)
End Function
Me devuelve esto (Como puedes observar sin repeticion alguna ;) ):
------------------------------------------------
Contenido de cTemp(1)
10
12
15
9
14
------------------------------------------------
------------------------------------------------
Contenido de cTemp(2)
11
8
2
6
3
------------------------------------------------
------------------------------------------------
Contenido de cTemp(3)
13
4
5
1
7
------------------------------------------------
Espero que te sirva al menos de guia... :)
DoEvents¡! :P
-
Hola.
Muy bueno gracias!! por tu aporte ya lo incorporé!!
Miguel
-
De nada ;)
Me alegro de que te haya servido... ;D
DoEvents¡! :P