2013-01-31 84 views
2

我正在使用二維數組來存儲用戶的用戶名和密碼。 users定義爲全局字符串數組:如何將項目添加到VB6 2D陣列

Dim users(9, 2) As String 

如何將用戶添加到該數組?立即設置用戶名和密碼。

+0

的陣列可能是一個更好的模型將是類的集合/陣列。 – Deanna

回答

1

循環遍歷用戶和賦值直接阿雷:

Dim cntr As Integer 
For cntr = 0 To UBound(cntr) - 1 
    users(x, 0) = "username" 
    users(x, 1) = "password" 
Next cntr 
7

一旦你有Dim有明確界限的陣列的用戶,你不能ReDim它。 你可以試試這個,它不會編譯(數組已經尺寸)

Dim users(9, 2) As String 
ReDim Preserve users(10, 2) ' doesn't compile! 

,你將有另一個問題將試圖ReDim Preserve數組的第一個索引。你也可以嘗試,你會得到運行時錯誤(下標超出範圍)

Dim users() As String 
ReDim Preserve users(0, 1) 
ReDim Preserve users(1, 1) ' runtime error! 

取而代之,我想出了以下內容。您需要保留第一個索引以區分usernamepassword。這將是大小1(而不是2)。第二個指標會隨着你添加更多的用戶:

Private Sub Form_Load() 
    Dim users() As String 
    ReDim users(1, 0) 
    Add users, "name1", "pw1" 
    Add users, "name2", "pw2" 
End Sub 

Private Sub Add(ByRef users() As String, username As String, password As String) 
    If Not (users(0, 0) = vbNullString And users(1, 0) = vbNullString) Then 
     ReDim Preserve users(1, UBound(users, 2) + 1) 
    End If 
    users(0, UBound(users, 2)) = username 
    users(1, UBound(users, 2)) = password 
End Sub 

如果你不能交換的用戶名和密碼,你可能想尋找到一個不同的數據結構,如收集,或自定義類的數組用戶名和密碼字段。

4

創建包含所有字段

Private Type UserData 
    strName As String 
    strPass As String 
End Type 

用戶定義的類型,然後創建用戶定義類型

Dim udtUser() As UserData 
ReDim udtUser(9) As UserData 
With udtUser(9) 
    .strName = "captain hook" 
    .strPass = "parrotname" 
End With 'udtUser(9)