2013-07-03 2 views
7

Ich mache ein Projekt, und ich muss VB6 verwenden. Ich kämpfe mit einigen grundlegenden Aufgaben, teilweise aufgrund (was ich denke) ist ein Mangel an Dokumentation, und teilweise, weil ich normalerweise Sprachen mit einer C-basierten Syntax verwenden.VB6 - Definieren eines String-Arrays

Wenn ich ein Array in C# definieren, folgt in der Regel:

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

ich dies in VB6 tun wollen.

Aber in VB6, alles, was ich habe dies getan:

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

Gibt es eine effizientere Art und Weise eine Anordnung in VB6 als das Beispiel der Definition I oben dargestellt? Eine ähnliche Vorgehensweise wie bei C#?

Antwort

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

Einfach genug, überraschend ich nicht, dass überall finden konnte, haha. Danke! –

+5

Es sollte betont werden, dass dies eine Reihe von * Varianten * nicht * Strings * – MarkJ

8

Wenn Sie ein String Array wollen im Gegensatz zu dem Variant Array Array() ergeben wird;

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

Hier ist eine andere Möglichkeit:

Dim S() As String 

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

Dies ist nicht erstaunlich effizient. Die Funktion Split() gibt eine Variante zurück, die ein Array von String enthält, und kopiert dann das gesamte Array in ein neues Array von String. –

+0

Es ist kein erstaunlich schlechter Darsteller. Wenn Sie das Array innerhalb einer engen Schleife neu erstellen müssen, können Sie ein Array auf diese Weise außerhalb der Schleife erstellen und es dann für jede Iteration in eine zweite Arrayvariable innerhalb der Schleife kopieren. – Bob77