查看: 173  |  回复: 0
VB6 函数Erase帮你快速清空数组,另外:Erase删除动态数组,不会保留以前占的空间
楼主
发表于 2023年11月27日 15:10

新建From1(窗体),新建Command1(按钮CommandButton),代码:

Private Sub Command1_Click()
    Dim blArray(10) As Boolean     ' Boolean 数组。
    Dim NumArray(10) As Integer    ' Integer 数组。
    
    Dim StrVarArray(10) As String    '变长的 String 数组。
    Dim StrFixArray(10) As String * 10    '定长的 String 数组。
    
    Dim VarArray(10) As Variant    'Variant 数组。
    
    Dim DynamicArray() As Integer    '动态数组。
    ReDim DynamicArray(10)    '分配存储空间。
    
    Dim arrB() As Byte '字节数组
    ReDim arrB(10)
    arrB(10) = 2
    Debug.Print "VarArrayByte:" & arrB(10)
    '--------------------------------------------------------
    Erase NumArray    '将每个元素设为 0。
    Erase StrVarArray    '将每个元素设为零长度字符串 ("")。
    
    Erase StrFixArray    '将每个元素设为 0。
    Erase VarArray    '将每个元素设为 Empty。
    Erase DynamicArray    '释放数组所用内存。
    Erase arrB    '释放数组所用内存。
    '--------------------------------------------------------
    Debug.Print "blArray:" & blArray(10)
    Debug.Print "NumArray:" & NumArray(10)
    Debug.Print "StrVarArray:" & StrVarArray(10)
    Debug.Print "StrFixArray:" & StrFixArray(10)
    Debug.Print "VarArray:" & VarArray(10)
    'Debug.Print "DynamicArray:" & DynamicArray(10) '如果执行就出错,因为下标越界
    Debug.Print "VarArrayByte:" & VarArray(10)
    VarArray(10) = 3
    'Debug.Print "VarArrayByte:" & arrB(10) '如果执行就出错,因为下标越界
End Sub

运行结果:

VarArrayByte:2
blArray:False
NumArray:0
StrVarArray:
StrFixArray:          
VarArray:
VarArrayByte:

如果你在StrFixArray后面拷贝空格,在debug中可以看到:

debug.Print len("          ")

运行结果:

 10

而StrVarArray和VarArray都没空格。

提醒:Erase 删除动态数组,不会保留以前占的空间。

您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2024 MaNongKu.com