大家好,我们今日继续讲解VBA代码解决方案的第136讲内容:如何操作随机文件。在上一讲中,我讲了建立一个准数据库文件的方法,今日我们就来讲操作这个数据库。我们还是利用上一讲已经建立的文件,来完成我们的输出过程。下面的过程中首先要以随机的方式打开文件,然后确认文件的大小,已经存在的记录数,最后把文件的内容输出;
Option Explicit
Type MyDictionary
myen As String * 10
mysp As String * 20
End Type
Sub MyoutDictionary ()
Dim d As MyDictionary
Dim i As Integer
Dim recNr As Long
Dim records As String
Open "E:\nz\work\文章\MytypeDictionary.txt" For Random As #1 Len = Len(d) '打开随机访问文件
MsgBox "There are " & LOF(1) & " bytes in this file." ' 提示本文件的总字节数
recNr = LOF(1) / Len(d) '显示总记录数
MsgBox "Total number of records: " & recNr
For i = 1 To recNr
Seek #1, i ' 找到该随机记录
Get #1, i, d ' 读取记录
Sheets("sheet8").Cells(i, 1) = d.myen
Sheets("sheet8").Cells(i, 2) = d.mysp
Next
Close #1 ' 关闭文件
msgbox("OK!")
End Sub
代码的截图:
过程分析:过程MyoutDictionary先声明变量,之后,打开一个随机访问文件"E:\nz\work\文章\MytypeDictionary.txt",并且告诉VB每个记录的长度Len = Len(d),接下来,在弹出的窗口里显示文件的总字节数和总记录数。字节数是由语句LOF(1)返回的。记录数是总字节数(LOF)除以一个记录的长度Len(d)。接下来,VBA执行循环里的语句,指令Seek #1, i.在开启的文件中移动光标到变量i记录处,读取记录内容。要在打开的随机访问文件中读取数据,你必须使用Get语句。
指令:Get #1, i, d
告诉VBA要读取的记录号码I,以及要读取数据的变量d。随机文件中的第一个记录在位置1,第二个记录在位置2,依次类推。然后,用户定义的类型字典的两个成员都被输出了出来。输出的位置:
Sheets("sheet8").Cells(i, 1) = d.myen
Sheets("sheet8").Cells(i, 2) = d.mysp
下面我们看程序的运行结果:
输出的数据:
好了,到此随机文件的讲解到此告一段落,二进制的文件由于应用的不是很广泛,本套教材就不再单独的讲解了。
今日内容回向:
1 如何打开一个随机文件?
2 随机文件如何的读取?