Gå til innhold

Funksjonen IsEmpty og Arrays


Anbefalte innlegg

Hei!

 

Har problemer med å bruke funksjonen IsEmpty når jeg sjekker om et element i en array ikke er initialisert - får Feilmelding 'Function IsEmpty must have a variable as argument 1'.

 

koden er slik IF IsEmpty (Variabel (i) )

 

Hvis elementene 0,1,2 inneholder data, betyr det at element 4 ikke er initialisert?

Eller er arrayen 'i bruk' hvis et av elementene er initalisert?

 

Noen som vet?

Lenke til kommentar
Videoannonse
Annonse

For det meste bruker jeg heller følgende funksjon for å teste om en matrise er initalisert eller ikke:

 

Private Declare Function VarPtrArray Lib "msvbvm50.dll" Alias "VarPtr" (Ptr() As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Private Sub Form_Load()

Dim aTest() As String, lAddress&, lValue&

lAddress = VarPtrArray(aTest)
CopyMemory lValue, ByVal lAddress, 4

If lValue = 0 Then
   MsgBox "Array aTest() er ikke ikke initialisert", vbCritical, "Feil"
Else
   MsgBox "Array aTest() er initialisert", vbInformation, "Ok"
End If

End Sub

 

Det at vi faktisk må benytte oss av "hacks" for å finne en god måte å teste dette på er rett og slett korttenkt og idiotisk av Microsoft. Men, i det miste skal dette være fikset i VB.NET.

Lenke til kommentar

Ser at posten min ikke var helt forklarende, og besvarte ikke alle spørsmålene, så jeg prøver igjen:

 

Hvis elementene 0,1,2 inneholder data, betyr det at element 4 ikke er initialisert?

 

Ikke nødvendigvis. Dette avhenger helt og holdent av HVILKEN datatype elementet er. Normalt sett er f.eks en Long alltid initialisert, mens en String kun er det hvis den inneholder informasjon.

 

Hvilken datatype har denne arrayen?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...