收藏 分享(赏)

第九章文件.ppt

上传人:天天快乐 文档编号:1140701 上传时间:2018-06-14 格式:PPT 页数:32 大小:240.50KB
下载 相关 举报
第九章文件.ppt_第1页
第1页 / 共32页
第九章文件.ppt_第2页
第2页 / 共32页
第九章文件.ppt_第3页
第3页 / 共32页
第九章文件.ppt_第4页
第4页 / 共32页
第九章文件.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、第十六章 设计文件应用程序,本章内容及要求:掌握VB中文件的概念、种类及其结构;掌握顺序文件的操作:打开、读/写、关闭;了解随机文件的操作:打开、读/写、关闭;了解二进制文件的操作:打开、读/写、关闭。了解常用的文件操作的语句和函数。学习FSO对象模型的结构,掌握对象变量的定义和使用。,本章重点:文件的操作:打开、读/写、关闭。,16-1 文件的概念,一、文件及其结构 文件:存储在外部介质上数据的集合。 要求操作系统中的文件系统能提供用户按名存取方式 在操作系统中有两种文件: 字符流无结构文件和记录式有结构文件 磁盘文件是由数据记录组成。记录是计算机处理数据的基本单位,它由一组具有共同属性相互

2、关联的数据项组成。,二、文件分类,根据访问文件的方式将文件分成3类: 顺序文件、 随机文件、 二进制文件。,1顺序文件 顺序文件(Sequential File)是普通的文本文件。顺序文件中的记录按顺序一个接一个地排列。读写文件存取记录时,都必须按记录顺序逐个进行。一行一条记录(一项数据),记录可长可短,以“换行”字符为分隔符号。,结构简单; 但不能灵活存取,适用于不经常修改的文件,2随机文件 随机文件(Random Access File)是可以按任意次序读写的文件,其中每个记录的长度必须相同。在这种文件结构中,每个记录都有其唯一的一个记录号,所以在读取数据时,只要知道记录号,便可以直接读取

3、记录。,存取速度快,易更新;但占用空间大,设计程序较复杂,3二进制文件 二进制文件(Binaryfile)是字节的集合,直接把二进制码存放在文件中。 除了没有数据类型或者记录长度的含义以外,它与随机访问很相似。 二进制访问模式是以字节数来定位数据,在程序中可以按任何方式组织和访问数据,对文件中各字节数据直接进行存取。,灵活性很大; 相对的, 程序更复杂,16-2 顺序文件,在程序中对文件的操作,通常按3个步骤进行:,16-2-1 顺序文件的打开与关闭,1.打开顺序文件,其使用格式如下:Open FileName For Input | Output | Append LockAs filenu

4、mber Len = Buffersize,例如: OPEN “C:TEMPA.TXT ” FOR Input AS #1 OPEN“C:TEMPB.TXT ” FOR Output AS #2 OPEN“C:TEMPC.TXT ” FOR Append AS #3,2. 关闭文件Close 语句使用格式如下: Close filenumberlist其中:filenumberlist:可选项,为文件号列表,如:#1, #2, #3, 例如: Close #1,#2,#3 如果省略,则将关闭Open语句打开的所有活动文件。 Close,16-2-2 顺序文件的读写操作,向文件写入内容使用 Pr

5、int # 语句或Write#语句,在程序是数据输出。,1Print语句使用格式: PRINT #,说明:文件号为以写方式打开文件的文件号; 输出列表为用分号或逗号分隔的变量、常量、空格和定位函数序列。,2Write命令使用格式: Write #,Write语句采用紧凑格式。数据项之间插入“,”,并给字符数据加上双引号。,例16.1 Print与Write语句输出数据结果比较。Private Sub Form_Click()Dim Str As String, Anum As Integer Open D:Myfile.dat For Output As 1Str = ABCDEFGAnum

6、= 12345Print #1, Str, AnumWrite #1, Str, AnumClose #1End Sub,例16.2 编程把一个文本框中的内容,以文件形式存入磁盘。假定文本框的名称为Mytxt,文件名为Myfile.dat。方法1:把整个文本框的内容一次性地写入文件。Open Myfile.dat For Output As #1Print #1, Mytxt.TextClose #1方法2:把整个文本框的内容一个字符一个字符地写入文件。Open Myfile.dat For Output As #1For i=1 To len(Mytxt.Text) Print #1,Mid

7、(Mytxt.Text,i,1);Next iClose #1,2. 顺序文件读操作 从现存文件中读入数据,应以顺序Input方式打开该文件。然后使用 Input# 语句、Line Input# 语句和Input( )函数读入到程序变量中。 使用格式如下: INPUT #文件号,变量列表把读出的每个数据项分别存放到所对应的变量。LINE INPUT #文件号,字符串变量读一行到变量中,主要用来读取文本文件。INPUT$(读取字符数, #文件号)读取指定的数量的字符,作为函数的返回值。,3与读文件操作有关的几个函数(1)Lof 函数 LOF函数将返回某文件的字节数。例如,LOF(1)返回#1文件

8、的长度,如果返回0值,则表示该文件是一个空文件。(2)Loc 函数 Loc函数将返回在一个打开文件中读写的记录号;对于二进制文件,它将返回最近读写的一个字节的位置。(3)Eof 函数 Eof 函数将返回一个表示文件指针是否到达文件末尾的标志。如果到了文件末尾,Eof 函数返回TRUE(-1),否则返回FALSE(0)。,例16.3 编程将一文本文件的内容读到文本框 假定文本框名称为txtTest,文件名为MYFILE.TXT。可以通过下面三种方法来实现。 方法1:一行一行读txtTest.Text Open MYFILE.TXT For Input As #1Do While Not EOF(

9、1)Line Input #1, InputDatatxtTest.Text txtTest.Text + InputData+vbCrLfLoopClose #1,回车换行,方法2:一次性读txtTest.Text Open MYFILE.TXT For Input As #1txtTest.Text = Input( LOF(1),1)Close #1方法3:一个个字符读Dim InputData as String*1txtTest.Text Open MYFILE.TXT For Input As #1Do While Not EOF(1)Input #1, InputDatatxtT

10、est.Text txtTest.Text + InputDataLoopClose #1,例16.4 利用文件系统控件、组合框、文本框,制作一个文件浏览器。 要求:组合框限定文件列表框中显示文件的类型,如选定“*.Txt”文件。当在文件列表框选定欲显示的文件时,在文本框显示出该文件的内容。,程序运行效果如图,16-3 随机文件,16-3-1 随机文件的打开与关闭1打开随机文件打开随机文件格式为:OPEN FileName FOR Random Access Lock As filenumber Len = reclength,用OPEN命令以Random模式打开随机文件,同时指出记录的长度。

11、文件打开后,可同时进行读写操作。,例如:Open d:abc.dat For Random Access Read As #1 Len = 20,2关闭随机文件 随机文件的关闭与关闭顺序文件相同。16-3-2 写随机文件 Put #文件号,记录号,变量名将一个记录变量的内容写到指定的记录位置处。忽略记录号,则表示在当前记录后的位置插入一条记录。16-3-3 读随机文件Get #文件号,记录号,变量名忽略记录号,则读出当前记录后的那一条记录。,1. 打开文件 Open 文件名 For Binary As #文件号2. 写操作Put #文件号,位置,变量名写入长度等于变量长度的数据。3. 读操作G

12、ET #文件号,位置,变量名 从指定位置开始读出长度等于变量长度的数据存入变量中,数据读出后移动变量长度位置,如果忽略位置,则表示从文件指针所指的位置开始读出数据,数据读出后移动变量长度位置。,16-4 二进制文件(了解),16-5 常用的文件操作语句和函数,1. 改变当前驱动器(ChDrive 语句)格式:ChDrive drive功能:改变当前系统驱动器。说明: 如果drive为“”,则当前驱动器将不会改变;如果drive中有多个字 符,则ChDrive只会使用首字母。 例如:ChDrive D 及ChDrive D: ChDrive Dasd 都是将当前驱动器设为D盘。,16-5-1 文

13、件操作语句,2. 改变当前目录(ChDir 语句) 格式:ChDir path 功能:改变当前目录。 例如:ChDir D:TMP 说明:ChDir语句改变缺省目录位置,但不会改变缺省驱动器位置。 例如,如果缺省的驱动器是C,则上面的语句将会改变驱动器D上的缺省目录,但是C仍然是缺省的驱动器: 3. 删除文件(Kill语句)格式:Kill pathname功能:删除文件。说明:pathname中可以使用统配符“*”和“?”。例如:Kill *.TXT Kill C:MydirAbc.dat,4. 建立(MkDir 语句)和删除(RmDir 语句)目录 建立目录格式:MkDir path 功能:

14、创建一个新的目录。 例如: MkDir D:MydirABC 删除目录格式:RmDir path 功能:删除一个存在的目录。 说明:只能删除空目录。 例如:RmDir D:MydirABC“说明: RmDir只能删除空子目录,如果想要使用RmDir来删除一个含有文件的目录或文件夹,则会发生错误。,5. 拷贝文件 FileCopy语句 格式:FileCopy source , destination功能:复制一个文件。例如:FileCopy D:MydirTest.doc“, A:MyTest.doc 说明: FileCopy语句不能复制一个已打开的文件。6. 文件的更名 Name 语句格式:N

15、ame oldpathname As newpathname功能:重新命名一个文件或目录。 例: Name D:MydirTest.doc As A:MyTest.doc 说明:(1) Name具有移动文件的功能。(2) 不能使用统配符“*”和“?”,不能对一个已打开的文件上使用Name语句。,7. 设置文件属性SetAttr 语句。格式: SetAttr FileName, attributes其参数含义:FileName:必要参数。一个文件名的字符串表达式。Attributes:必要参数。常数或数值表达式,其总和用来表示文件的属性。Attributes参数设置下表:,1. 获得当前目录Cu

16、rDir函数格式:CurDir(drive)功能:利用CurDir函数可以确定指定驱动器的当前目录。 说明:可选的Drive参数是一个字符串表达式,它指定一个存在的驱动器。如果没有指定驱动器,或Drive是零长度字符串(“”),则CurDir会返回当前驱动器的路径。 例如: str=CurDir(“E:”) 获得E盘当前目录路径,并赋值给变量Str,16-5-2 文件操作函数,2.获得文件属性GetAttr函数。 格式:GetAttr(FileName)功能:返回代表一个文件、目录、或文件夹的属性的Integer数据。GetAttr返回的值及代表的含义下表,3. FileDateTime函数格

17、式:FileDateTime(FileName) 功能:返回一个Variant (Date),此值为一个文件被创建或最后修改后的日期和时间。,4FileLen函数格式:FileLen(FileName)功能:返回一个Long,代表一个文件的长度,单位是字节。,5Shell函数和Shell过程,在VB中,可以调用在DOS下或Windows下运行的应用程序:,函数调用形式: ID=Shell( FileName ,WindowType ) 说明:执行一个可执行文件,返回一个Variant (Double),如果成功的话,代表这个程序的任务ID,它是一个唯一的数值,用来指明正在运行的程序。若不成功,

18、则会返回 0 过程调用形式: Shell FileName ,WindowType),FileName:是要执行的应用程序名字符串,包括盘符、路径,它必须是可执行的文件。WindowType:为整型值,表示执行应用程序打开的窗口类型,其取值下表。,例如: (windows98下) 调用执行Windows系统中的记事本i = Shell(C:WINDOWSNOTEPAD.EXE) 进入MS_DOS状态j = Shell(c:, 1)也可按过程形式调用:Shell C:WINDOWSNOTEPAD.EXE Shell c:, 1注意,上面指定的执行文件,可能因不同计算机系统,文件的路径有所不同。,16-6 文件系统对象,说明: 本节为选学内容,学习较好的学生自学。,在VB6.0中新增了文件系统对象(File System Object 缩写为FSO)模型,它提供了一整套对文件系统进行管理和操作的方法和属性,包括:获得驱动器的信息,如驱动器列表、盘符、磁盘空间等。获得文件夹的或文件的信息,如名称、创建、修改日期等。检查指定的文件夹或文件是否存在及在什么位置。文件夹或文件的删除、移动、复制等通常操作。对文本文件的读写操作。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报