vb 如何保存和返回数组中的值

请问各位高手:
Private Sub Command1_Click()
For i = 1 To 10
q1(i) = i
q2(i) = i
q3(i) = i
q4(i) = i
q5(i) = i
q6(i) = i
'''''用 Msflexgrid 来显示数据
MSFlexGrid1.Rows = 11
MSFlexGrid1.TextMatrix(i, 0) = i
MSFlexGrid1.TextMatrix(i, 1) = q1(i) & q2(i) & q3(i) & q4(i) & q5(i) & q6(i)
end

以上只只是举例
如果我删除了数组中的一项后,我用.TXT 格式 保存数组的值.需要时还能重新调用,用两个控件来实现:command2 为保存, command3 为打开保存,同时 Msflexgrid 中显示为当时删除后的数据.
请问,这样如何来写代码?

第1个回答  2008-09-05
'首先,你必须将数组声明为模块级别的变量,例如:
Dim q1() As Long

Private Sub Form_Load()
'此过程中的语句是为了初始化数组
'类似你的 Command1_Click 过程

Command2.Caption = "保存数组": Command3.Caption = "读取数组"
ReDim q1(1 To 10)
For I = LBound(q1) To UBound(q1)
q1(I) = I * 100
Next
End Sub

Private Sub Command2_Click()
'保存数组
Dim F As String, H As Long, I As Long, nStr As String

'要将数组保存为纯文本文件,先将数组转变为字符串
H = UBound(q1)
For I = LBound(q1) To H
nStr = nStr & q1(I)
If I < H Then nStr = nStr & vbCrLf
Next

H = FreeFile
F = "C:\MyText.txt"
Open F For Output As #H '打开文件
Print #H, nStr '将字符串 nStr 保存到文件中
Close #H '关闭文件

End Sub

Private Sub Command3_Click()
'读出数组
Dim F As String, H As Long, I As Long, nStr As String

H = FreeFile
F = "C:\MyText.txt"
ReDim q1(1 To 1) '重定义数组

Open F For Input As #H '打开文件
Do
If EOF(H) Then Exit Do
Input #H, nStr '从文件中读出一行字符串
I = I + 1
ReDim Preserve q1(1 To I)
q1(I) = Val(nStr)
Loop
Close #H '关闭文件

'下面是你显示数组数据的语句
'............
End Sub

'另外,要删除数组中的某项,可以在程序的适当的地方调用下面的过程
'例如,要删除低 2 项,可以加入语句: DelNum 2
Private Sub DelNum(S As Long)
Dim H As Long, I As Long

H = UBound(q1)
If S < 1 Or S > H Then Exit Sub
H = H - 1

For I = S To H
q1(I) = q1(I + 1) '将 S 后面的项目依次上移
Next

If H > 0 Then
ReDim Preserve q1(1 To H)
Else
ReDim q1(1 To 1)
End If

'下面是你显示数组数据的语句
'............
End Sub
相似回答
大家正在搜