VB大神些帮帮忙吧

Option Explicit
Option Base 1
Private Type Abc
A As Integer
End Type
Private Sub Form_Click()
Dim recAbc As Abc
Dim arrA(4, 4) As Integer
Dim intI As Integer, intJ As Integer, intN As Integer
Open "abc.txt" For Random As #1
For intI = 1 To 4
intN = intN + 1
For intJ = 1 To 4
recAbc.A = intN
Put #1, , recAbc
Next intJ
Next intI
Close
Open "abc.txt" For Random As #1
For intJ = 1 To 4
For intI = 1 To 4
Get #1, intI * intJ, recAbc
arrA(intI, intJ) = recAbc.A
Next intI
Next intJ
Close
For intI = 1 To 4
For intJ = 1 To 4
Print Tab(intJ * 3); Format(arrA(intI, intJ), "###");
Next intJ
Print
Next intI
end sub
程序运行后在窗体显示结果是什么?麻烦大神帮我写下上面代码主要过程的含义,和这个问题结果的算法

输出:
1 1 1 1
1 1 2 2
1 2 3 3
1 2 3 4
代码分析如下:
Option Explicit '强制变量定义后才能使用
Option Base 1 '数组的缺省下标从1开始
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'定义一个用户自定义数据类型
Private Type Abc
A As Integer '该自定义数据类型有一个元素
End Type
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Private Sub Form_Click()
Dim recAbc As Abc '声明一个变量属于用户自定义数据类型
Dim arrA(4, 4) As Integer '声明一个二维数组
Dim intI As Integer, intJ As Integer, intN As Integer

'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'以随机方式打开文本文件,并执行写文件操作
Open "abc.txt" For Random As #1
For intI = 1 To 4
intN = intN + 1
For intJ = 1 To 4
recAbc.A = intN
Put #1, , recAbc
Next intJ
Next intI
Close
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'以随机方式打开文本文件,并执行读文件操作
Open "abc.txt" For Random As #1
For intJ = 1 To 4
For intI = 1 To 4
Get #1, intI * intJ, recAbc
arrA(intI, intJ) = recAbc.A
Next intI
Next intJ
Close
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'输出二维数组的值
For intI = 1 To 4
For intJ = 1 To 4
Print Tab(intJ * 3); Format(arrA(intI, intJ), "###");
Next intJ
Print
Next intI
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
End Sub

写文件的结果形成的序列是:1111222233334444
读文件:
Get #1, intI * intJ, recAbc
arrA(intI, intJ) = recAbc.A
从文件序列的第intI * intJ个读取给变量recAbc,然后赋值给二维数组;

所以:
第 1次,读第 1 * 1 个数据,即1,赋给arrA(1,1),即;arrA(1,1) = 1
第 2次,读第 1 * 2 个数据,即1,赋给arrA(1,2),即;arrA(1,2) = 1
第 3次,读第 1 * 3 个数据,即1,赋给arrA(1,3),即;arrA(1,3) = 1
第 4次,读第 1 * 4 个数据,即1,赋给arrA(1,4),即;arrA(1,4) = 1
第 5次,读第 2 * 1 个数据,即1,赋给arrA(2,1),即;arrA(2,1) = 1
第 6次,读第 2 * 2 个数据,即1,赋给arrA(2,2),即;arrA(2,2) = 1
第 7次,读第 2 * 3 个数据,即2,赋给arrA(2,3),即;arrA(2,3) = 2
第 8次,读第 2 * 4 个数据,即2,赋给arrA(2,4),即;arrA(2,4) = 2
第 9次,读第 3 * 1 个数据,即1,赋给arrA(3,1),即;arrA(3,1) = 1
第10次,读第 3 * 2 个数据,即2,赋给arrA(3,2),即;arrA(3,2) = 2
第11次,读第 3 * 3 个数据,即3,赋给arrA(3,3),即;arrA(3,3) = 3
第12次,读第 3 * 4 个数据,即3,赋给arrA(3,4),即;arrA(3,4) = 3
第13次,读第 4 * 1 个数据,即1,赋给arrA(4,1),即;arrA(4,1) = 1
第14次,读第 4 * 2 个数据,即2,赋给arrA(4,2),即;arrA(4,2) = 2
第15次,读第 4 * 3 个数据,即3,赋给arrA(4,3),即;arrA(4,3) = 3
第16次,读第 4 * 4 个数据,即4,赋给arrA(4,4),即;arrA(4,4) = 4
所以输出结果为:
1 1 1 1
1 1 2 2
1 2 3 3
1 2 3 4
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-29
同意楼上的