Rubrik: Variablen/Strings · Arrays | VB-Versionen: VB4, VB5, VB6 | 12.06.03 |
Prüfen, ob Array dimensioniert ist Mit dieser Funktion lässt sich schnell prüfen, ob ein Array dimensioniert ist. | ||
Autor: Dieter Otter | Bewertung: | Views: 24.130 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Die IsArray-Funktion von VB prüft bekanntlich nur, ob es sich bei der übergebenen Variablen um ein Array handelt. Ob das Array bereits dimensioniert ist, lässt sich allerdings nicht festellen:
Dim myArray() As String If IsArray(myArray) Then ...
Um nun zu ermitteln, ob das Array bereits dimensioniert ist, könnte man wie folgt vorgehen:
On Error Resume Next Dim nCount As Long nCount = UBound(myArray) If Err.Number <> 0 Then ' Array ist noch nicht dimensioniert ReDim myArray(10) ... End If On Error Goto 0
Es gibt aber noch eine einfachere und vor allem "sauberere" Lösung. Hierzu müssen wir wieder einmal auf eine API-Funktion zurückgreifen, die wie folgt zu deklarieren ist:
' benötigte API-Deklaration Private Declare Function SafeArrayGetDim Lib "oleaut32" _ Alias "SafeArrayGetDim" ( _ pArray() As Any) As Long
Die Funktion selbst liefert den Wert 0 zurück, wenn das Array noch nicht dimensioniert ist:
If SafeArrayGetDim(myArray) = 0 Then ' Array ist noch nicht dimensioniert ReDim myArray(10) ... End If