VBA代码如何打开顺序文件,又如何读取顺序文件

大家好,我们今日继续讲解VBA代码解决方案的第127讲内容:VBA如何打开和读取顺序文件。VBA在控制文件的时候,打开和读取是最基本的操作,今天开始及以后的几讲会讲解这方面相关的内容,今日讲解的是VBA如何打开和读取顺序文件。

一 什么是顺序文件,我们的电脑上有成百上千的参数文件,错误日志,HTML文件以及所有类型的无格式文本文件,这些都是顺序文件。

顺序文件的特点:① 新文本行的开始以两个专门的字符表示,一个carriage return (回车),另一个叫line feed(换行)。

②访问它里面的记录时必须按它的顺序进行,这意味着在你想访问第三个记录之前,你必须先访问第一个记录,接着是第二个记录。

二 如何打开顺序文件

要从一个文件读取数据,必须先使用Open语句打开该文件。

语法:Open pathname For mode [Access access][lock] As [#]filenumber [Len=reclength]

参数:

① Pathname是你要打开的文件名称,可以包括驱动器和文件夹名称

② Mode是个决定文件如何打开的关键字。顺序文件可以以下列模式之一来打开:Input, Output 或Append。使用Input读文件,Output写文件,将覆盖任何存在的文件,以及Append来写入文件,同时附加上任何已经存在的信息。

③ Access是决定决定文件读写的关键字,Access可以是:Shared(共享),Lock Read(锁定读),Lock Write(锁定写)或Lock Read Write(锁定读写)。

④ Lock决定了哪些文件的操作是允许其它过程进行的。例如,Read, Write 或者 Read Write。

⑤ Filenumber是从1到511的数字,该数字用来指向顺序操作中的文件。一个唯一的文件号码。

⑥ reclength明确顺序文件里总字符数,或者是随机文件里记录大小。

例; Open " E:\nz\work\文章\人员表单.txt" For Input As #1

三 如何读取文件内容 在打开顺序文件后,你就可以使用Line Input #读取文件的内容。

语法: Line Input #filenumber, variableName

其中filenumber是用Open语句打开文件时使用的数字,variableName是个String或者Variant变量,用来储存读取的行。

注意点:

1此语句仅读取一个打开的顺序文件里的一行。并且储存在一变量里。

2 此语句一次读取顺序文件里的一行的概念:首个字符或者或者在新行的起始字符开始,直到遇到回车字符(Chr(13))或者回车-换行字符(Chr(13) & Chr(10))为止称之为一行。(Chr(13) & Chr(10))这些字符(回车,换行)在读取过程中返回的文本里是会忽略掉的。

下面我们看一个实例的而讲解:

Sub MynzReadMe()

Dim myrLine As String

Dim i As Integer ' line number

i = 1

Open "E:\nz\work\文章\人员表单.txt" For Input As #1

Do While Not EOF(1)

Line Input #1, myrLine

MsgBox "Line " & i & ": " _

& Chr(13) & Chr(13) & myrLine

i = i + 1

Loop

MsgBox i & " lines ok"

Close #1

End Sub

代码截图:

代码讲解:过程MynzReadMe将文件E:\nz\work\文章\人员表单.txt在模式Input里作为文件号码1打开。Do…While循环告诉VBA一直执行循环里面的语句,直到到达文件结尾。文件的结尾由函数EOF的结果决定。

Line Input # 语句将每行内容储存于变量myrLine里,然后,信息框显示行号和它的内容。

大家先看看E:\nz\work\文章\人员表单.txt 的文件内容:可以看出此文件一共是10行。

下面我们看看程序的运行:

一直到:

今日内容回向:

1 什么是顺序文件?

2 顺序文件如何读取?

3 上面的截图最后的对话框为什么显示的是11行呢?(变量i在最后有个加1的动作)

举报
评论 0