(一)打开和关闭文件
    1、顺序文件

    打开顺序文件,我们可以使用Open语句。它的格式如下:

Open pathname For [Input |Output |Append] As [#]filenumber [Len = buffersize]

    说明:

    1)参数pathname 表示要打开的文件名,文件名可以包含有驱动器和目录

    2Input Output Append用于设置顺序文件的打开方式。其中,Input表示从打开的文件中读取数据。以这种方式打开文件时,文件必须存在,否则会产生错误。Output表示向打开的文件中写入数据。以这种方式打开文件时,文件中原有的数据将被覆盖,新的数据将从文件开始写入。如果文件不存在,则创建一个新文件。Append表示向打开的文件中添加数据。以这
种方式打开时,文件中原有的数据将被保留,新的数据将从文件为开始添加。如果文件不存在,则创建一个新文件。

    3As[#]filenumber 子句用于为打开的文件指定文件号.对文件进行读写操作时,要用文件号表示该文件.文件号是介于1~511之间的整数,既可以是数字,又可以是变量.也可以省略不用.

    (4)当在文件与程序之间拷贝数据时,Len=buffersize子句指定缓冲区的字符数.

    例如:

Open App.Path + "\test.dat" For Output As 1

Open App.Path + "\test.dat" For Output As 1

    这两句代码在当前应用程序所在目录下创建了一个名为test.dat的文本文件,分配文件号为1.

Open App.Path + "\test.dat" For Input As [#]filenumber

    这条语句是从文本文件中读取数据.

Open App.Path + "\test.dat" For Append As [#]filenumber

    这条语句则是像文本文件中添加数据

    2、随机文件

    操作随机文件之前,首先必须定义用于保存数据项的记录类型.该记录是用户自定义数据类型,他们是随机文件中存储数据的基本结构.例如:


Type Student
  No As Integer
  Name As String * 20
  age As Integer
End Type

Dim Stud As Student ‘定义一个可以存放学生材料的变量

    随机文件中,所有的数据都将保存到若干个结构为Student类型的记录中, 而从随机文件中读出的数据则可以存放到变量Stud.

    之后我们就可以打开并读写文件了.下面是打开随机文件的语法格式:

Open filename For Random as [#]filenumber Len = Reclength


    说明:

    (1)参数filename filenumber 分别表示文件名或文件号.

    (2)关键字Random 表示打开的是随机文件

    (3)Len子句用于设置记录长度,长度由参数Reclength指定.Reclength的值必须大于0,而且必须与定义的记录结构的长度一致.计算记录长度的方法是将记录结构中每个元素的长度相加.例如前面声明的Student的长度应该是2+20+2=24字节.

    打开一个记录类型为Student 的随机文件的方法是:

Open "c:\ " For Random As #1 Len = 25

    3、二进制文件

    打开二进制文件的语法格式如下:

Open pathname For Binary As [#]filenumber
    说明:

    (1) 参数filename filenumber 分别表示文件名或文件号.

    (2)关键字Binary 表示打开的是二进制文件

    (3)对于二进制文件,不能指定字节长度.每个打开的二进制文件都有一个自己的指针,文件指针是一个数字值,指向下一次读写操作的文件中的位置.二进制文件中的每个位置对应一个数据字节,因此,n个字节的文件,就有1n个位置.

    我们可以用Seek()函数返回当前的文件指针位置(即下一个要读写的字节 );Loc()函数返回上一次读写的字节位置,除非用Seek语句移动了指针,Loc()返回值总比Seek()的小1.我们来看下面的例子:

Open “” for Binary as #1

    该语句用二进制的方式打开了文件.

    (二)读文件

    1、顺序文件

    顺序文件的读取有三种方式:

    1Line Input # 语句


    该语句从打开的顺序文件中读取一行数据。这里的一行指的是从当前指针位置开始到回车符或回车换行符之间的所有数据。Line Input # 语句的语法格式如下:

Line Input # 文件号,变量号

    说明:文件号是打开文件时所用的文件号;变量号使用来存放读出数据的一个或多个变量,如果有多个变量,中间用空格分割开。Input# 语句为参数列表中的每一个变量读取文件的一个域,并将读出的域存入变量中。该语句只能顺序的从第一个域开始,直到读取想要的域。

    请看下面代码:

Dim strLine As String

Open "c:\" For Input As #1

Do Until EOF(1)eof()是一个函数,所以它有函数值,它的函数值有两个truefalse。它的()里的1就是参数。
它的含义是:读取文件的指针指到文件尾时,它的值就是true。还没有读到文件尾时,它的值为false
括号里的参数是它判断的文件的文件号。

这个函数使用的范围太有限了!平时做计算用不到它,只在读取顺序文件时才用的到。

DO while not EOF(1)解释:
判断当eof(1)的值为true时停止do循环。
——这一语句经常用到顺序文件的读取中。字符串长度就是字符串中字符的个数
  Line Input #1, strLine
  text1.Text = text1.Text + strLine + Chr(13) + Chr(10)
Loop

Close #1
  1、在所有的计算机语言中,ascii10都是代表换行符。在键盘上没有对应按键,只在各种计算机语言程序中出现。

    2、在vb及以前的BAsic版本中,chr(10)都是调用ascii10,即换行符。

    3、无论是在显示还是打印语句,执行chr(10)时都是要换一行(不同于回车),这在早期DOS版本的Basic中非常有用。

    4回车”Chr13)与换行”Chr10)的区别,回车代表上一句终了,再输入或输出就是下一句了。而换行时前一句并没有结束,前后还是一句话,仅仅是从形式上换行后的部分放到下一行,看起来跟回车的形式一样。

    5、但是,VB中要换行时,却是要Chr10+ Chr13),即两个ASC码。单独一个Chr10),却不能换行了。
   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。