Visual Basic - Problema array y Nothing

Life is soft - evento anual de software empresarial
 
Vista:

Problema array y Nothing

Publicado por Coloso (6 intervenciones) el 29/08/2006 11:07:43
Hola a todo el mundo tengo un problemilla con una array de datos, me explico con código:

Tengo definido los siguientes datos:

Type datos
ip As String * 20 'MBT:192.30.53.14 'Dirección IP
palabra As String * 10 '!%MW109 'Palabra del autómata
bits_palabra As String * 4 ':B12 'Nº bits que tiene la palabra
alarma As String * 20 'Alarma100 '
descripcion As String * 80 ':Climatización Noblejas 'Descripción
milisegundos As String * 7 ':MS500 'Cada cuantos milisegundos hay que chequear
End Type

Global matriz_ips() As datos 'Registros que contendrán los valores del fichero de texto
Global matriz_ips_fichero() As datos
Global matriz_datos() As datos


Bien mi problema es que cuando llamo a un procedimiento:

Public Sub Ordenar_Datos(matriz_ips() As datos, matriz_ips_fichero() As datos, matriz_datos() As datos)

El primer array tiene datos y los otros dos contienen sólo el valor Nothing, bien lo que pasa es que quiero saber como comparo para

saber si el array está vacio.

Yo intento chequear de la siguiente forma:

Dim num_m1 As String
Dim num_m2 As String
Dim i, j, k As Integer
Dim fin As Boolean

i = j = k = 0
fin = False

'Nº Registros del array matriz_ips
If matriz_ips <> Nothing Then
num_m1 = UBound(matriz_ips, 1)
Else
num_m1 = 0
End If

'Nº Registros del array matriz_ips_ficheros
If matriz_ips_fichero <> Nothing Then
num_m2 = UBound(matriz_ips_fichero, 1)
Else
num_m2 = 0
End If

'Redimensionamos la matriz con los datos que teniamos antes + lo que tenemos nuevos
ReDim matriz_datos(num_m1 + num_m2)

Pero me devuelve en la línea If matriz_ips <> Nothing Then

un error de uso no válido de un objeto.

Alguien sabe como lo puedo chequear que el array viene sin ningún

valor ????? Gracias por leer este mensaje y un saludo a todo el mundo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema array y Nothing

Publicado por christian (675 intervenciones) el 29/08/2006 22:19:27
has probado con el ISNULL

IF ISNULL(ARRAY) = true then
array= 0
endif
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema array y Nothing

Publicado por The Emulator (96 intervenciones) el 29/08/2006 23:21:16
Hola

Pues bueno talves haya alguna funcion del VB (Escondida porque nunca la he visto) que sirva para eso.
Pero mientras la encuentras podrias hacer esto aunque es algo rustico.

Usando el UBound puedes saber cual es el indece mas grande del arreglo pero si se usa con una matriz que no ha sido dimenciona provoca error este error se puede interceptar al hacer esto se puede saber que el arreglo esta vacio. en el siguiente ejemplo hay una funcion que valida de esta forma si el arreglo esta vacio o no.

------------------------------------
Private Sub Form_Load()
Dim Arreglo() As String

If ArregloVacio(Arreglo) = True Then
MsgBox "Arreglo vacio"
Else
MsgBox "Arreglo con informacion"
End If
End Sub

Public Function ArregloVacio(TempArreglo() As String) As Boolean
On Error GoTo ManejoError
If UBound(TempArreglo) > 0 Then
ArregloVacio = False
End If

Exit Function
ManejoError:
ArregloVacio = True
End Function
------------------------------------

Saludos
http://www.theemulator.tk
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar