2013-07-03 43 views
7

我在做一個項目,我需要使用VB6。 我正在努力完成一些基本任務,部分原因是(我認爲)缺少文檔,部分原因是因爲我通常使用帶有基於C語法的語言。VB6 - 定義字符串數組

當我定義在C#中的數組,它通常如下:

string[] s = {"a", "b", "c", "d" }; 

我想這樣做的VB6。

但在VB6,所有我一直在做這樣的:

Dim s(0 To 3) As String 
s(0) = "a" 
s(1) = "b" 
s(2) = "c" 
s(3) = "d" 

是否有在VB6定義數組比我上面所示的例子更有效的方法是什麼?一種類似於C#方法的方式?

回答

9
Dim s 
s = Array("a", "b", "c", "d") 
+0

夠簡單,令人驚訝的我找不到任何地方,哈哈。 謝謝! –

+5

應該強調的是,這是一組*變體*不*字符串* – MarkJ

8

如果你想有一個字符串數組而不是在陣列Array()將產生;

Function ArrayString(ParamArray tokens()) As String() 
    ReDim arr(UBound(tokens)) As String 
    Dim i As Long 
    For i = 0 To UBound(tokens) 
     arr(i) = tokens(i) 
    Next 
    ArrayString = arr 
End Function 

... 

Dim a() As String 
a = ArrayString("foo", "bar", ..., "qux") 
5

這裏的另一種可能性:

Dim S() As String 

S = Split("a|b|c|d", "|") 
+0

這不是非常有效。 Split()函數返回一個Variant,其中包含一個String數組,然後它將整個數組複製到一個新的String數組中。 –

+0

這不是一個令人驚訝的表演者。如果您需要在緊密的循環中重新創建數組,您可以在循環外以這種方式創建一個數組,然後將其複製到循環內的第二個數組變量中,以用於每次迭代。 – Bob77