2010-08-10 42 views
3

我在作業中編寫的很多腳本都依賴於創建動態大小的數組。 VBScript中的數組使得這個任務非常艱鉅,因爲每次想要調整它們的大小時,都必須使用Redim數組。爲了解決這個問題,我開始製作逗號分隔的字符串,並使用Split(...)來創建1D數組。雖然這對我來說太棒了,但我想知道VBScript是否有更有效的方式來處理這個問題。所以我問StackOverflow;在那兒?帶有Split()的VBScript動態數組。有沒有更好的辦法?

免責聲明:我深知,VBScript是一個非常不合格的腳本語言,但是Python需要額外的軟件,這是一個有點用於服務器自動化是件麻煩事,和PowerShell是不是一個核心組成部分呢。雖然我正在學習它們!

+0

你看着Jet查詢和/或斷開連接的記錄? Jet與Windows一起安裝。 – Fionnuala 2010-08-10 21:24:18

+0

@Remou:是的,我有。在大多數情況下,更多功能的代碼更多。如果我需要排序或二維數組(即行/列),我會使用這些。 – 2010-08-10 22:51:29

回答

5

我通常使用的解決方案是在每次添加新項目時調整數組的大小。這樣,結束數組永遠不會有任何未使用的條目。

ReDim aArray(-1) 

For i = 1 To 10 
    ReDim Preserve aArray(UBound(aArray) + 1) 
    aArray(UBound(aArray)) = i 
Next 

MsgBox Join(aArray, "," & vbNewLine) 

卡洛斯提出其他的解決辦法是不要使用字典對象,它可能是更清潔的解決方案是:

Set dic = CreateObject("Scripting.Dictionary") 

dic.Add "Item1", "" 
dic.Add "Item2", "" 
dic.Add "Item3", "" 

msgbox Join(dic.Keys, "," & vbNewLine) 

感謝, 馬切伊

1

Dictionary對象怎麼樣?

+0

我正在建議。這似乎是許多問題的答案。 – Tester101 2010-08-11 18:24:02

+0

當我想要k/v對時,我使用字典。我所指的問題是我需要一維數組的情況。 – 2010-08-11 19:05:17

+0

你當然可以像一維數組一樣使用它。 – aphoria 2010-08-12 13:19:30

相關問題