龙空技术网

VBA代码如何对随机文件进行读取,并输出一个准数据库文件的记录

VBA语言専攻 414

前言:

此刻各位老铁们对“vb文件已打开”大概比较着重,咱们都需要知道一些“vb文件已打开”的相关知识。那么小编也在网上收集了一些有关“vb文件已打开””的相关内容,希望朋友们能喜欢,看官们快快来学习一下吧!

大家好,我们今日继续讲解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 随机文件如何的读取?

标签: #vb文件已打开 #vb文件读取并输出指定数据 #vb读取txt文件内容 #如何用vba读取文件 #如何用vba读取文件数据