预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共43页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第 8 章文件是指存放在外存储器(如磁盘)上的信息集合 使用文件可以将应用程序所处理的数据以文件的形式保存起来 程序文件和数据文件 本章主要内容 数据文件概述 顺序文件 随机文件 文件基本操作 文件系统对象(FSO)简介8.1.1数据文件的结构 数据文件由记录组成,记录由字段组成,字段由字符组成 (1)顺序文件:文本文件。文件中的记录按顺序一个接一个地排列。无法灵活地随意存取它。只适用于有规律的、不经常修改的数据 (2)随机文件:随机文件的每一个记录都有固定的长度,每一个记录都有记录号,这种文件的特点是允许用户存取文件中任一个记录。可以同时进行读或写操作存入和读出速度较快,数据容易更新 (3)二进制文件:可理解为长度为1的特殊的随机文件(1)打开(或新建)文件 (2)进行读、写操作系统设置文件指针,用来记住当前读写的位置 (3)关闭文件1.打开文件(Open) Open文件名[For模式][Access存取类型][锁定]As[#]文件号[Len=记录长度] 说明:(1)文件名; (2)模式用于指定文件访问的方式,包括:Append——从文件末尾添加Binary——二进制文件Input——顺序输入Output——顺序输出Random——随机存取方式 (3)文件号(或称文件缓冲区) (4)存取类型:访问文件的类型,为Read(只读)、Write(只写)、 ReadWrite(读写) (5)锁定:限制其他用户或其他进程对文件进行读写操作 Shared(共享)、LockRead(禁止读)、LockWrite(禁止写)、 LockReadWrite(禁止读写) (6)Len:用来指定每个记录的长度(字节数) 示例:Open"d:\cj1.dat"ForOutputAs#12.关闭文件(Close) 打开的文件使用完后必须关闭。 关闭文件的语句格式:Close[#]文件号1[,[#]文件号2…]] 示例:Close#11.FreeFile函数 格式:FreeFile 功能:返回一个在程序中没有使用的文件号 示例:FileNo=FreeFile Open"D:\MyFile.txt"ForOutputAsFileNo 2.Seek语句和Seek函数 Seek函数的格式:Seek(文件号) 功能:返回文件指针的当前位置 对于随机文件,Seek函数返回指针当前所指的记录号。对于顺序文件,Seek函数返回指针所在的当前字节位置(从头算起的字节数) Seek语句的格式:Seek[#]文件号,位置 功能:将指定文件的文件指针设置在指定位置,以便进行下一次读或写操作 对于随机文件,“位置”是一个记录号;对于顺序文件,“位置”表示字节位置3.Eof函数格式:Eof(文件号)功能:测试与文件号相关的文件是否已达到文件的结束位置。如果是,函数值为真值,否则为假值。 使用Eof是为了避免在文件结束处读取数据而发生错误 4.Lof函数格式:Lof(文件名)功能:返回与文件号相关的文件的总字节数 5.Loc函数 格式:Loc(文件号) 功能:返回与文件号相关的文件的当前读写位置8.2.1顺序文件的写入操作以Output或Append方式打开文件,然后使用Write#语句或Print#语句将数据写入文件中 1.Write语句格式:Write#文件号[,表达式表]功能:将表达式的值写到与文件号相关的顺序文件中每个Write语句向顺序文件写入一个记录(不定长),它会自动地用逗号分开每个表达式的值。给字符串加上双引号 在最后一个字符写入后,插入一个回车换行符(Chr(13)+Chr(10)),以此作为记录结束的标记。 示例:Write#1,"GoodAfternoon",1998把1~50的50个整数,以及这些数中能被7整除的数分别存入两个文件中,文件名为num1和num2,文件存放在VB缺省文件夹下 PrivateSubForm_Load() Open"num1.txt"ForOutputAs#1 Open"num2.txt"ForOutputAs#2 Fori=1To50 Write#1,i IfiMod7=0ThenWrite#2,i Nexti Close#1,#2 UnloadMe EndSub 说明:num1.txt文件中一共写入50个记录,而num2.txt文件只写入其中能被7整除的若干个记录在例8.1所生成的num2.txt文件中,存放了若干个能被7整除的数,现要求再加入51~200范围内能被7整除的数 程序代码如下: PrivateSubForm_Load() Open"num2.txt"ForAppendAs#1 Fori=51To200 IfiMod7=0ThenWrite#1,i Nexti