2013-07-03 26 views
7

Tôi đang thực hiện một dự án và tôi cần sử dụng VB6. Tôi đang đấu tranh với một vài nhiệm vụ cơ bản, một phần do (những gì tôi nghĩ) là thiếu tài liệu, và một phần vì tôi thường sử dụng ngôn ngữ với cú pháp dựa trên C.VB6 - Xác định một mảng chuỗi

Khi tôi xác định một mảng trong C#, nó thường sau:

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

Tôi muốn làm điều này trong VB6.

Nhưng trong VB6, tất cả tôi đã làm điều này:

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

Có cách nào hiệu quả hơn để xác định một mảng trong VB6 hơn ví dụ tôi minh họa ở trên? Một cách tương tự như cách tiếp cận C#?

Trả lời

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

đủ đơn giản, đáng ngạc nhiên tôi không thể tìm thấy bất cứ nơi nào mà haha. Cảm ơn! –

+5

Cần nhấn mạnh rằng đây là một mảng của * Biến thể * không * Chuỗi * – MarkJ

8

Nếu bạn muốn có một Chuỗi mảng như trái ngược với Variant mảng Array() sẽ mang lại;

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

Đây là một khả năng:

Dim S() As String 

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

Điều này không đáng kinh ngạc. Hàm Split() trả về một biến thể có chứa một mảng của chuỗi, và sau đó nó sao chép toàn bộ mảng vào một mảng mới của chuỗi. –

+0

Nó không phải là một biểu diễn nghèo đáng kinh ngạc. Nếu bạn cần tạo lại mảng trong vòng lặp chặt chẽ, bạn có thể tạo một mảng theo cách này bên ngoài vòng lặp và sau đó sao chép nó vào một biến mảng thứ hai bên trong vòng lặp cho mỗi lần lặp. – Bob77

Các vấn đề liên quan