arrays - 如何将项目添加到 VB6 2D 数组

标签 arrays multidimensional-array vb6

我正在使用二维数组来存储用户的用户名和密码。 users定义为全局字符串数组:

Dim users(9, 2) As String

如何将用户添加到该数组?一次设置用户名和密码。

最佳答案

一旦您拥有 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

如果您不能交换用户名和密码,您可能需要查看不同的数据结构,例如集合或具有用户名和密码字段的自定义类的数组。

关于arrays - 如何将项目添加到 VB6 2D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14634565/

相关文章:

c - 字符串打印导致 C 程序崩溃

java - 索引 0 超出长度 0 数组 3D 的范围

Java:设置未知数量条目的数组长度

ios - NSPredicate 使用数组作为过滤器

c# - 在 C# 中使用 VB6 类

c# - Java 设计器脚本项目在 VB6 到 C# 转换中的作用是什么?

VB6 默默地从表单中删除大量控制数据

java - 简单除法+余数法错误

javascript - 如何在 React Native 中连接 url

javascript - 如何在 JavaScript 中区分值和二维数组