2010-12-17 25 views
6
में dimensioned नहीं किया गया है

मैं कैसे मैं यह देखने के लिए कि इस सरणी dimensioned नहीं किया गया है जाँच कर सकते हैं पर VBScriptमैं कैसे निर्धारित कर सकते हैं एक गतिशील सरणी VBScript

Dim myArray() 

बाद में एक गतिशील सरणी बनाने कहो?

Ubound(myArray) 'sub script out of range 
Lbound(myArray) 'sub script out of range 
IsEmpty(myArray) 'returns false 

उत्तर

5

मैं वहाँ में बनाया कुछ भी है नहीं लगता है, लेकिन आप अपने खुद के समारोह बना सकते हैं के रूप में:

Function IsInitialized(a)  
    Err.Clear 
    On Error Resume Next 
    UBound(a) 
    If (Err.Number = 0) Then 
     IsInitialized = True 
    End If 
End Function 

जो तुम तो कॉल कर सकते हैं के रूप में:

Dim myArray() 
If Not IsInitialized(myarray) Then 
    WScript.Echo "Uninitialized" 
End If 

हालांकि, एक इसके आस-पास काम करने का तरीका खाली सरणी घोषित नहीं करना चाहिए, इसके बजाय केवल एक चर घोषित करें और इसे बाद में एक सरणी पर सेट करें, इसलिए ऊपर दिए गए कोड को बदलें:

Dim myArray 
myArray = Array() 
If Not IsInitialized(myarray) Then 
    WScript.Echo "Uninitialized" 
End If 
0

मैं Not ऐरे पसंद करता हूं, और उसके बाद परिणाम -1 पर तुलना करता हूं। यह काम करता है, और बिना किसी त्रुटि के जानबूझ कर ऐसा करता है।

Dim myArray() 

... 

If (Not myArray) = -1 Then 
    ReDim myArray(0) 
Else 
    ReDim Preserve(0 To UBound(myArray)+1) 
End If 
+0

अद्भुत छोटे हैक। – martin

+0

यह मेरे लिए वीबीएस या क्लासिक एएसपी में काम नहीं करता है। – Lankymart

+0

@ लंकीमार्ट, आपने सरणी कैसे घोषित की? –

0

मैं कुछ इस तरह का उपयोग कर:

Dim arr 
arr = null 

sub addElement (byref arr, element) 
    if isNull (arr) then 
     redim arr(0) 
    else 
     redim preserve arr (uBound(arr) + 1) 
    end if 
    arr(uBound(arr)) = element 
end sub 
-1

इस जबकि एक ही प्रश्न का उत्तर की तलाश में भर में आया, मैं करने के लिए एक चर 0 प्रारंभ और यह भी वृद्धि केवल जब मैं करने के लिए जोड़ क्षेत्र और फिर बस चर मूल्य के बजाय के लिए जाँच ...

मंद myArray() num = -1 अगर addtoarray तो num = संख्या +1 ReDim की रक्षा myArray (संख्या) यदि अंक> -1 फिर कुछ अंत करें तो

+0

में भविष्य पाठक की सहायता के लिए कोड शामिल है – HaveNoDisplayName

संबंधित मुद्दे