Visual Basic程序的设计导学list07.docVIP

  • 1
  • 0
  • 约9.07千字
  • 约 14页
  • 2018-06-09 发布于福建
  • 举报
Visual Basic程序的设计导学list07

第7章 文 件 操 作 文件是永久存储在磁盘等介质上的一组数据的集合。很多程序需要读写磁盘文件。这就涉及到如何建立文件,如何从文件中读数据,如何向文件写数据等问题。本章讨论与文件操作相关的内容。 7.1 文 件 类 型 在VB中根据文件的结构和访问方式,可将文件分为三类:顺序存取文件、随机存取文件和二进制存取文件。下面分别予以介绍。 7.1.1 顺序存取文件 顺序存取是将要保存的数据,依序逐个字符转成ASCII字符,然后存入磁盘。以顺序存取的方式保存数据的文件叫做顺序存取文件,简称顺序文件。顺序文件存储格式如图7.1所示。 图7.1 顺序文件存储格式 通常记录与记录之间的分界字符为回车符,记录中字段与字段之间的分界字符为逗号。 在顺序文件中查找某个记录必须从文件头开始找起,逐个比较,直到找到目标为止。若要修改某个记录,则需将整个文件读出来,修改后再将整个文件写回磁盘,因此很不灵活。但由于顺序文件是按行存储,所以它们对需要处理文本文件的应用程序来说就是非常理想的了。例如,一般的程序文件(如.C程序文件)都是顺序文件。 顺序文件的优点是操作简单,缺点是无法任意取出某一个记录来修改,一定得将全部数据读入,在数据量很大时或只想修改某一条记录时,显得非常不方便。 7.1.2 随机存取文件 以随机存取方式存取的文件称为随机文件。随机文件很像一个数据库,它由大小相同的记录组成,每个记录又由字段组成,字段中存放着数据。其存储结构如图7.2所示。 每个记录前都有记录号表示此记录开始。在读取文件时,只要给出记录号,就可迅速找到该记录,并将该记录读出;若对该记录做了修改,需要写到文件中时,也只要指出记录号,新记录将自动覆盖原有记录。所以,随机文件的访问速度快,读、写、修改灵活方便,但由于在每个记录前增加了记录号,从而使其占用的存储空间增大。 图7.2 随机文件存储格式 7.1.3 二进制存取文件 在二进制文件中的数据均以二进制方式存储,存储单位是字节(随机文件按记录存取,顺序文件按行存取)。 在二进制文件中,能够存取任意所需要的字节,可以把文件指针移到文件的任何地方,因此,这种存取方式最为灵活。 7.2 顺序存取文件 由于顺序文件按行存储,通常它是一个文本文件,数字和字符均以ASCII码形式存储。下面讨论顺序文件的操作语句。 7.2.1 文件的打开 在对文件进行任何操作之前,必须打开文件,同时要通知操作系统对文件进行读操作还是写操作,将数据存到什么地方。打开文件用Open语句。其使用语法如下: Open文件名[For模式[Access访问方式][Lock]As[#]文件号[Len=记录长度] 其中,文件名是指要打开的文件,可包含驱动器名及路径名。模式是说明文件打开方式,对顺序文件而言,有三种模式: · Output(输出):相当于写文件。 · Input(输入):相当于读文件。 · Append(添加):相当于将数据添加在文件尾部。 访问方式是说明打开文件所允许的操作,有三种方式: · Read:只读。 · Write:只写。 · ReadWrite:读写皆可,只适用于顺序文件的Append模式。 Lock参数是指明其他进程对打开文件所允许的操作,有三种方式: · Shared:可对此文件读写。 · LockRead:不允许读此文件。 · LockWrite:不允许写此文件。 文件号是一个1~255的整数,用于表示这个文件。新的文件号可用FreeFile()函数获得。 文件长度是小于32 767的整数。对顺序文件来说,它是指缓冲区分配的字符个数;对随机文件来说,它是文件中记录的长度。 7.2.2 向文件中写数据 要建立一个顺序文件或打开一个顺序文件,向文件中写数据,应该用Output模式打开文件,然后用输出命令写入数据。 以Output模式打开文件,就是建立文件;若文件已存在,则删除旧文件,建立新文件。以Append模式打开文件与此很相似,二者的差别在于:以Append模式打开文件时,如果该文件已经存在,VB并不删除它,随后的输出命令把新行追加到该文件尾部。写文件的输出命令有如下两种: · Print #文件号,字段1[;][,][;字段2[;][,]…… · Write #文件号,字段1[,字段2]…… 使用Print语句时,必须显式地写分隔符逗号,以区分每个字段,而使用Write语句,不用显式地写出分隔符。用如下语句建立文件try.txt,并把文本框txtMyText的内容写入该文件中: FileNum=FreeFile() Open try.txt For 0utput As FileNum Print #FileNum,txtMyText.Text Close FileNum 7.2.3 从文件中读取数据 要读顺序文件

文档评论(0)

1亿VIP精品文档

相关文档