Gemeinsam zu mehr Effizienz in der Anwendungserstellung
K |
K |
||
(Der Versionsvergleich bezieht 6 dazwischenliegende Versionen mit ein.) | |||
Zeile 1: | Zeile 1: | ||
[[Kategorie:Code-Schnipsel]] | [[Kategorie:Code-Schnipsel]] | ||
- | Mit IsArray(..) kann man zwar prüfen, ob eine Variable ein Array beinhaltet, man kann aber nicht prüfen, ob ein dynamisches Array dimensioniert ist. | + | Mit <code>IsArray(..)</code> kann man zwar prüfen, ob eine Variable ein Array beinhaltet, man kann aber nicht prüfen, ob ein dynamisches Array dimensioniert/initialisiert ist. |
<source> | <source> | ||
- | + | Private Function IsInitializedLongArray(ByRef ArrayToCheck() As Long) | |
+ | IsInitializedLongArray = Not ((0 / 1) + (Not Not ArrayToCheck) = 0) | ||
+ | End Function | ||
- | + | Private Function IsInitializedStringArray(ByRef ArrayToCheck() As String) | |
- | + | IsInitializedStringArray = Not ((0 / 1) + (Not Not ArrayToCheck) = 0) | |
- | + | End Function | |
- | + | ||
- | + | ... | |
- | + | ||
</source> | </source> | ||
+ | === Anwendung === | ||
<source> | <source> | ||
Dim TestArray() As Long | Dim TestArray() As Long | ||
- | |||
- | |||
Debug.Print "IsArray(TestArray) = "; IsArray(TestArray), | Debug.Print "IsArray(TestArray) = "; IsArray(TestArray), | ||
- | + | If IsInitializedLongArray(TestArray) Then | |
- | If ( | + | Debug.Print "Array ist initialisiert", "UBound(TestArray) = "; UBound(TestArray) |
+ | Else | ||
Debug.Print "Array ist nicht initialisiert" | Debug.Print "Array ist nicht initialisiert" | ||
- | |||
- | |||
End If | End If | ||
</source> | </source> | ||
- | |||
<source> | <source> | ||
- | Dim TestArray( | + | Dim TestArray() As Long |
+ | |||
+ | ReDim TestArray(3) | ||
Debug.Print "IsArray(TestArray) = "; IsArray(TestArray), | Debug.Print "IsArray(TestArray) = "; IsArray(TestArray), | ||
- | + | If IsInitializedLongArray(TestArray) Then | |
- | If ( | + | Debug.Print "Array ist initialisiert", "UBound(TestArray) = "; UBound(TestArray) |
+ | Else | ||
Debug.Print "Array ist nicht initialisiert" | Debug.Print "Array ist nicht initialisiert" | ||
- | |||
- | |||
End If | End If | ||
- | |||
</source> | </source> |
Mit IsArray(..)
kann man zwar prüfen, ob eine Variable ein Array beinhaltet, man kann aber nicht prüfen, ob ein dynamisches Array dimensioniert/initialisiert ist.
Private Function IsInitializedLongArray(ByRef ArrayToCheck() As Long) IsInitializedLongArray = Not ((0 / 1) + (Not Not ArrayToCheck) = 0) End Function Private Function IsInitializedStringArray(ByRef ArrayToCheck() As String) IsInitializedStringArray = Not ((0 / 1) + (Not Not ArrayToCheck) = 0) End Function ...
Dim TestArray() As Long Debug.Print "IsArray(TestArray) = "; IsArray(TestArray), If IsInitializedLongArray(TestArray) Then Debug.Print "Array ist initialisiert", "UBound(TestArray) = "; UBound(TestArray) Else Debug.Print "Array ist nicht initialisiert" End If
Dim TestArray() As Long ReDim TestArray(3) Debug.Print "IsArray(TestArray) = "; IsArray(TestArray), If IsInitializedLongArray(TestArray) Then Debug.Print "Array ist initialisiert", "UBound(TestArray) = "; UBound(TestArray) Else Debug.Print "Array ist nicht initialisiert" End If