版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章数据文件1.掌握VB中文件的概念、种类及其结构;2.掌握顺序文件的操作:打开、读/写、关闭;3.掌握随机文件的操作:打开、读/写、关闭;4.了解二进制文件的操作。5.了解与文件操作有关的一些语句本章内容及要求:本章重点:顺序文件的操作:打开、读/写、关闭;随机文件的操作:打开、读/写、关闭;本章难点:随机文件、二进制文件的操作第11章数据文件
文件是存储在外部介质(如磁盘)上的以文件名标识的数据的集合。通常由一组存放在磁盘上的相关字节组成。当应用程序要访问文件时,必须自己决定文件中字节的意义(比如,表示字符、数据记录、整数、字符串等等)。存储在磁盘上的文件称为磁盘文件,与计算机相连的设备称为设备文件。这些文件都不在计算机内,统称为外部文件。
11.1文件概述一、文件及其结构
文件:存储在外部介质上数据的集合。按名存取
磁盘文件是由数据记录组成。记录是计算机处理数据的基本单位,它由一组具有共同属性相互关联的数据项组成。数据项文件的概念二、文件分类根据访问文件的方式将文件分成3类:顺序文件随机文件二进制文件。1.顺序文件顺序文件(SequentialFile)是普通的文本文件。顺序文件中的记录按顺序一个接一个地排列。读写文件存取记录时,都必须按记录顺序逐个进行。一行一条记录(一项数据),记录可长可短,以“换行”字符为分隔符号。
2.随机文件
随机文件(RandomAccessFile)是可以按任意次序读写的文件,其中每个记录的长度必须相同。在这种文件结构中,每个记录都有其唯一的一个记录号,所以在读取数据时,只要知道记录号,便可以直接读取记录。随机文件的文件结构3.二进制文件二进制文件(Binaryfile)是字节的集合、它直接把二进制码存放在文件中。除了没有数据类型或者记录长度的含义以外,它与随机访问很相似。二进制访问模式是以字节数来定位数据,在程序中可以按任何方式组织和访问数据,对文件中各字节数据直接进行存取。
虽然这3种文件访问的数据类型不同,但应用程序访问它们的步骤却相似:①使用Open语句打开文件,并为文件指定一个文件号。对文件进行任何I/O操作之前,都必须经过这步操作。②从文件中读取部分或全部数据到变量中。③对变量中的数据进行处理。④将处理后的数据保存回文件中。⑤使用Close语句关闭文件。如果没有关闭文件,则会导致文件中部分或全部信息丢失。文件的基本操作打开文件读出或写入关闭文件顺序文件的基本操作在程序中对文件的操作,通常按3个步骤进行:一、顺序文件的打开与关闭1.打开文件Open“文件名”[For模式]As[#]文件号[Len=记录长度] (1)模式 OUTPUT:写操作 INPUT:读操作 APPEND:追加到文件未尾
OPEN"C:\VB\SCORE.txt"FOR
OUTPUT
AS#1(2)文件号1~511,可以用FreeFile函数获得下一个可利用的文件号。(3)记录长度小于或等于32767的整数,它指定数据缓冲区的大小。例如,打开C:\VB\SCORE,供写入数据,指定文件号为#1。例如:OPEN“C:\TEMP\A.TXT”FORInputAS#1OPEN“C:\TEMP\B.TXT”FOROutputAS#2OPEN“C:\TEMP\C.TXT”FORAppendAS#1打开文件的真正含意:(1)并不是把文件内容显示出来,而是读文件或显示文件内容的必经步骤;(2)打开文件并不一定只是为了读文件内容而打开,其实写文件或新建文件之前都要把对应的文件打开。如何打开由用户任意指定的文件:(1)用打开/另存为对话框;(2)用文件列表框/目录列表框/驱动器列表框★要注意OPEN语句与它们分工上的不同 1.顺序文件读操作从现存文件中读入数据,应以顺序Input方式打开该文件。然后使用Input#语句、LineInput#语句和Input()函数读入到程序变量中。使用格式如下:格式一:Input#语句
INPUT#文件号,变量列表
把读出的每个数据项分别存放到所对应的变量,从文件中读出数据时,凡是遇到文件中的逗号、空格或回车符便认为是一个数据项的结束。二、顺序文件的读写操作Eof函数
Eof函数将返回一个表示文件指针是否到达文件末尾的标志。如果到了文件末尾,Eof函数返回TRUE(-1),否则返回FALSE(0)。从文件中读数据的常见循环方式:
DoWhileNotEof(文件号)读文件及其它语句Loop例2:把文件文件datain.txt的内容全部读出并显示在窗体中:FName=App.Path&"\"&"datain.txt"OpenFNameForInputAs#1DoWhileNotEof(1)Input#1,aPrintaLoopClose#1格式二:LineInput#语句
LINEINPUT#文件号,字符串变量功能:从顺序文件中读取一整行字符到后面指定的字符串变量中。例:把程序文件夹下面的文本文件myfile.txt的内容显示在一个多行文本框中:FName=App.Path&"\"&"myfile.txt"OpenFNameForInputAs#1DoWhileNotEOF(1)LineInput#1,sText1.Text=Text1.Text+s+vbCrLfLoopClose#1格式三:Input函数:INPUT$(N,#文件号) 从指定文件中读取N个字符的字符串,作为函数的返回值例:把程序文件夹下面的文本文件myfile.txt的内容一次性读出并显示在多行文本框中:FName=
App.Path&"\"&"myfile.txt"OpenFNameForInputAs#1Text1.Text=Input(LOF(1),1)Close#1例:把程序文件夹下面的文本文件myfile.txt的内容逐个字符读出并显示在多行文本框中。DimcAsString*1FName=App.Path&"\"&"myfile.txt"OpenFNameForInputAs#1DoWhileNotEOF(1)c=Input(1,#1)Text1.Text=Text1.Text&cLoopClose#12、顺序文件的写操作向文件写入内容使用Print#语句或Write#语句,在程序中是数据输出。(1)Print语句语法格式:PRINT#<文件号>,[<输出列表>]说明:文件号为以写方式打开文件的文件号;输出列表为用分号或逗号分隔的变量、常量、空格和定位函数序列。(2)Write命令语法格式:Write#<文件号>,[<输出列表>]Write语句采用紧凑格式。数据项之间插入“,”,并给字符数据加上双引号。三、关闭文件——Close语句使用格式如下:
Close[文件号列表]其中:文件号列表为可选项,如:#1,#2,#3,如果省略,则将关闭Open语句打开的所有活动文件。例如:Close#1,#2'删除打开的1号、2号文件Close'删除打开的全部文件
四.与读文件操作有关的几个函数(1)Lof函数
LOF函数将返回某文件的字节数。例如,LOF(1)返回#1文件的长度,如果返回0值,则表示该文件是一个空文件。(2)Loc函数
Loc函数将返回在一个打开文件中读写的记录号;对于二进制文件,它将返回最近读写的一个字节的位置。(3)Eof函数
14.3随机文件
在文件中以顺序文件方式进行存取数据很方便也很常用,但是当需要大量查找或修改文件中的数据时会很困难,而这时采用随机文件方式存取数据就显得比较方便。随机文件的每一个数据项都有相同的长度,它的数据项通常称做记录。随机文件是以记录为单位的,每条记录都被赋予了记录号以便查找。应用程序可以根据记录号直接读取随机文件中的任意记录,而无须由前至后逐个读取记录。对随机文件的存取是以记录为单位进行的,每个记录包括一个或多个字段。具有一个字段的记录对应于任一标准类型,比如整数或定长字符串。具有多个字段的记录对应于用户自定义类型。
1、声明记录类型变量
在打开一个文件进行随机访问之前,应定义一个类型,该类型对应于该文件包含或将包含的记录。语法格式为:
Type自定义类型名元素名Astype[元素名Astype]…EndType
例如,声明一个学生自定义类型。TypeStudentNumberAsString
2
学号,宽度为2字节NameAsString
8
姓名,宽度为8字节ScoreAsInteger
成绩,宽度为2字节EndType11.3随机文件在定义与记录对应的类型以后,应接着声明程序需要的任何其他变量,用来处理作为随机访问而打开的文件。如:Dims1Asstudent,s2Asstudent
定义记录变量s1和s2
2随机文件的操作一、打开 格式:
Open“文件名”ForRandomAs#文件号[Len=记录长度]
二、读操作 1.格式:
Get[#]文件号,[记录号],变量名
2.功能:
将一个已打开的磁盘文件的一条记录的内容读入一个变量之中。忽略记录号,则读出当前记录后的那一条记录。
三、写操作
1.格式:
Put[#]文件号,[记录号],变量名
2.功能:将一个变量的数据写入磁盘文件中,将一个记录变量的内容写到指定的记录位置处。忽略记录号,则表示在当前记录后的位置插入一条记录。二进制文件是一个字节流,文件系统并不解释各字节的意义,解释工作由具体的应用程序完成。以二进制方式访问文件有下述特点:
可以直接访问文件中的所有数据。
由应用程序根据需要解释数据的意义。
访问文件的语句不更改原始数据的所有内容。二进制文件每一次读写是以字节为单位对数据进行访问操作的,它允许用户读写或修改文件中的任何字节信息。当把二进制数据写入文件中时,使用Byte数据类型的数组,而不是String变量。String被认为包含的是字符,而二进制型数据可能无法正确地存储在String变量中。当要保持文件的尺寸尽量小时,应使用二进制文件。11.4二进制文件 一、二进制文件的打开
Open"文件名"ForBinaryAs#文件号 二、二进制文件的写操作
Put[#]文件号,[位置],变量名 写入长度等于变量长度的数据。 三、二进制文件的读操作
GET[#]文件号,[位置],变量名 从指定位置开始读出长度等于变量长度的数据存入变量中,数据读出后移动变量长度位置,如果忽略位置,则表示从文件指针所指的位置开始读出数据,数据读出后移动变量长度位置。11.4二进制文件例题文件复制
DimcAsByteOpen"F1.DAT"ForBinaryAs#1'打开源文件Open"F2.Dat"ForBinaryAs#2'打开目标文件DoWhileNotEOF(1)Get#1,,c'从源文件读出一个字节Put#2,,c'将一个字节写入目标文件LoopClose
与文件系统相关的语句1.ChDir语句格式:ChDirpath功能:改变当前目录。例如:ChDir"D:\TMP
2.ChDrive语句格式:ChDrivedrive功能:改变当前驱动器说明:如果drive为“”,则当前驱动器将不会改变;如果drive中有多个字符,则ChDrive只会使用首字母。11.5文件操作语句3.MkDir语句格式:MkDirpath功能:创建一个新的目录。4.RmDir语句 格式:RmDirpath 功能:删除一个存在的目录说明:只能删除空目录。5.FileCopy语句
格式:FileCopysource,destination 功能:复制一个文件。 说明:FileCopy语句不能复制一个已打开的文件。6.Name语句 格式:NameoldpathnameAsnewpathname 功能:重新命名一个文件或目录。 说明: (1)Name具有移动文件的功能。 (2)不能使用统配符“*”和“?”,不能对一个已打开的文件上使用Name语句。7.Kill语句 格式:Killpathname功能:删除文件。 说明:pathname中可以使用统配符“*”和“?”。例如:Kill"*.TXT"文件系统控件VB提供了3种可直接浏览系统目录结构和文件的控件:
驱动器列表框、目录列表框、文件列表框。
驱动器列表框文件列表框目录列表框驱动器列表框(DriveListBox)驱动器列表框(DriveListBox)控件,通常只显示当前驱动器名称,单击向下箭头,就会下拉出计算机拥有的所有磁盘驱动器,供用户选择。1.重要属性
Drive属性是驱动器列表框控件最重要和常用的属性,该属性在设计时不可用。使用格式:
object.Drive[=<字符串表达式>]例如:Drive1.drive=“D:”文件系统控件2.重要事件——Change事件
在程序运行时,当选择一个新的驱动器或通过代码改变Drive属性的设置时都会触发驱动器列表框的change事件发生。目录列表框(DirListBox)
目录列表框(DirListBox)控件用来当前驱动器目录结构及当前目录下的所有子文件夹(子目录)。供用户选择其中一个目录为当前目录。文件系统控件1.常用属性Path属性是目录列表框控件的最常用的属性,用于返回或设置当前路径。该属性在设计时是不可用的。使用格式:Object.Path[=<字符串表达式>]其中:Object:对象表达式,其值是目录列表框的对象名。<字符串表达式>:用来表示路径名的字符串表达式。例如,Dir1.Path="C:\Mydir"。缺省值是当前路径。说明:
Path属性也可以直接设置限定的网络路径如,\\网络计算机名\共享目录名\path文件系统控件2.重要事件——Change事件
与驱动器列表框一样,在程序运行时,每当改变当前目录,即目录列表框的Path属性发生变化时,都要触发其Change事件发生。文件系统控件
文件列表框(FileListBox)控件用来显示Path属性指定的目录中的文件定位并列举出来。该控件用来显示所选择文件类型的文件列表。文件列表框(FilelistBox)1.常用属性(1)Path属性
用于返回和设置文件列表框当前目录,设计时不可用。说明:当Path值的改变时,会引发一个PathChange事件。
文件系统控件此条件也可改为:Len(file1.path)>3(2)Filename属性
用于返回或设置被选定文件的文件名,设计时不可用。
说明:Filename属性不包括路径名。
例如:要从文件列表框(File1)中获得全路径的文件名Fname$,用下面的程序代码:IfRight(file1.path,1)="\"ThenFname$=file1.path&file1.filenameElseFname$=file1.path&"\"&file1.filenameEndIf文件系统控件(3)Pattern属性
用于返回或设置文件列表框所显
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Scyliorhinin-I-生命科学试剂-MCE
- 2023年陕西陕煤铜川矿业有限公司招聘考试真题
- 2023年普定县中医医院医共体招聘编外聘用专业技术人员笔试真题
- 2024年玻璃纤维仿形织物项目立项申请报告
- 2024年商务服务项目提案报告
- 病理 课程设计
- 三八妇女节主题班会
- 2024年具有独立功能电气设备及装置项目申请报告范稿
- 班级氛围的课程设计
- 版权纠纷化解方案
- 中国神华能源股份有限公司大柳塔煤矿矿山地质环境保护与土地复垦方案
- 腾讯秘书职业发展规划书
- 线缆敷设隐蔽验收记录
- GB/T 36344-2018信息技术数据质量评价指标
- 一年级上册道德与法治课件-10吃饭有讲究-人教(新版) (2)(共24张PPT)
- GB/T 12145-2016火力发电机组及蒸汽动力设备水汽质量
- GB/T 10855-2003齿形链和链轮
- GB/T 10001.2-2021公共信息图形符号第2部分:旅游休闲符号
- 群落的结构课件 【知识精讲+高效备课】高二上学期生物人教版选择性必修2
- 《测量小灯泡的电功率》设计 市赛一等奖
- 行进间运球上篮技术教案
评论
0/150
提交评论