2013-07-03 3 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

Если вы хотите Строки массива, в отличие от Variant массива 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