2009-02-10 123 views
7

我想使用一個數組,我在代碼的頂部多次聲明一次。防爆。你可以在VBScript中聲明一個常量數組嗎?

CONST宿舍= [ 「Q1」, 「Q2」, 「Q3」, 「Q4」]

對於每個季度q q.Do一些工作

等等

可以這樣在VBScript中完成?

+2

爲了讓更多人提出建議,您可能需要等待一段時間(> 5分鐘),然後才能將問題標記爲答案... ;-) – Dscoduc 2009-02-10 19:18:21

+2

爲什麼?這個問題得到了回答(我總是可以不標記它)。 – user45492 2009-02-13 22:33:46

回答

10

數組是VBScript中函數調用的結果(Array())。文字值只能爲Const。所以:不,你不能。

2

簡單的回答:沒有。該陣列不能被製作const

6

爲什麼不直接聲明數組爲public,然後在腳本啓動過程中分配數組?

Public myArray(3) 
arrQuarters = Array("Q1", "Q2", "Q3", "Q4") 

For Each Quarter in arrQuarters 
    wscript.echo Quarter 
Next 
3

你可以定義一個函數來返回你想用作常量的數組。例如:

For Each q in AllQuarters 
    wscript.echo q 
Next 

wscript.echo "element 0 = " & AllQuarters()(0) 

AllQuarters()(0) = "X1" 

wscript.echo "element 0 still = " & AllQuarters()(0) 


Function AllQuarters() 
    AllQuarters = Array("Q1","Q2","Q3","Q4") 
End Function 
1

更短,更不易出錯的解決辦法是:

Dim arr 
arr = Split("Q1 Q2 Q3 Q4") : ubd = UBound(arr) 
' Implied separator is " " aka 040 octal aka 32 Dec aka 020 Hex. 

如果您的數據可能會包含空格:

arr = Split("Le Sage,ne pleure,ni les vivants, ni les morts", ",") 
ubd = UBound(arr) 
' arr(2), for instance, now contains "ni les vivants" 

注意:切勿選擇一個分隔符,可能發生在'原子'數據字符串中,或​​者該函數將在單個數據中間的分隔符上進行拆分。

相關問題