2009-02-10 26 views
7

Kodumun üst kısmında bir kez bildirdiğim bir dizi kullanmak istiyorum. Ör.VBScript'te sabit bir dizi bildirebilir misiniz?

Sabit Quarters = [ "Q1", "Q2", "Q3", "S4"], her çeyrek q q.Do bazı iş için

Vb

bu VBScript içinde mi yapılmalı?

+2

Daha fazla kişinin öneride bulunmasına izin vermek için bir soruya işaretlemeden önce biraz (> 5 dakika) beklemek isteyebilirsiniz ... ;-) – Dscoduc

+2

Neden? Soru cevaplandı (her zaman böyle işaretini kaldırabilirim). – user45492

cevap

10

Bir dizi, VBScript'te bir işlev çağrısının sonucudur (Array()). Sadece literal değerler Const yapılabilir. Yani: Hayır, yapamazsın.

2

Basit cevap: hayır. Dizi const yapamaz.

6

Dizeyi yalnızca public olarak ilan etmiyoruz ve sonra betiğin başlangıcında diziyi atayalım?

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

For Each Quarter in arrQuarters 
    wscript.echo Quarter 
Next 
3

Sabit olarak kullanmak istediğiniz diziyi döndürmek için bir işlev tanımlayabilirsiniz. Örneğin:

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 
+0

İşte İYİ cevap. Sabit bir dizi bildiremezsiniz, ancak bir çözüm var: bir işlev olarak tanımlayın. – Stephan

1

daha kısa ve daha az hata çözüm olacaktır:

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

veri boşluk içerme olasılığı varsa:

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

Dikkat: Asla belki bir ayırıcı seçin 'atomik' veri dizilerinizde ortaya çıkar veya işlev, tek bir veri parçasının ortasında bu ayırıcıya bölünür.

İlgili konular