第八章数据文件.ppt
- 文档编号:18701948
- 上传时间:2023-10-06
- 格式:PPT
- 页数:27
- 大小:154.50KB
第八章数据文件.ppt
《第八章数据文件.ppt》由会员分享,可在线阅读,更多相关《第八章数据文件.ppt(27页珍藏版)》请在冰点文库上搜索。
第八章数据文件,8.1文件系统控件8.2文件概述8.3顺序文件8.4随机文件8.5二进制文件8.6常用文件操作语句和函数,1.驱动器列表框Drive属性:
包含当前选定的驱动器名,只能在运行时设置。
对象.Drive=driveChange事件:
选择一个新的驱动器或通过代码重新设置Drive属性引发Change事件。
2.目录列表框Path属性:
包含当前路径,只能在运行时设置。
对象.Path=pathnameChange事件:
双击一个新的目录或通过代码重新设置Path属性引发Change事件。
Click事件:
单击目录列表框时发生。
8.1驱动器、目录和文件列表框,3.文件列表框Path属性:
显示当前驱动器或指定驱动器上的目录结构,即显示该路径下的所有文件。
重新设置Path属性引发PathChange事件。
Pattern属性:
决定显示的文件类型。
对象.Pattern=value重新设置Pattern属性引发PatternChange事件。
例如:
file1.Pattern=*.frm,显示*.frm文件。
多个文件类型用分号分界。
例如:
*.frm;*.frxFileName属性:
包含选定的文件名对象.FileName=pathname引用时只返回文件名,相当于File1.List(File1.ListIndex),需用Path属性得到其路径;设置时可带路径。
Click、DblClick事件:
例如,单击输出文件名。
SubFile1_Click()MsgBoxFile1.FileNameEndSub例如,双击执行可执行程序:
SubFile1_DblClick()RetVal=Shell(File1.Path+”+File1.FileName,1)执行程序EndSub,例8.0示例程序文件管理系统。
当用户在文件列表框中单击文件名时输出该文件名;双击某可执行文件时,可以运行该程序。
8.2文件概述,文件:
存储在外存储器上的用文件名标识的数据的集合。
8.2.1文件分类1.按文件内容分类程序文件:
包括源程序和可执行程序。
数据文件:
程序运行所需要的各种数据。
2.按存储信息的形式分类ASCII文件:
存放各种数据的ASCII代码,可用记事本打开。
二进制文件:
存放的是数据的二进制代码,用专用程序打开。
3.按访问模式分类顺序文件、随机文件和二进制文件。
(1)顺序文件按顺序依次把记录写入文件;按顺序依次把记录读出来。
优点:
结构简单、访问模式简单缺点:
必须按顺序访问在VB中,顺序文件就是文本文件文本文件:
一行一条记录,记录可长可短,以“换行”字符为分隔符号。
(2)随机文件随机文件可以直接访问文件中的任意一个记录。
记录长度相同;根据记录号访问;存取速度快。
(3)二进制文件直接把二进制码存放在文件中。
以字节为单位访问。
8.2.2文件读/写1.打开文件文件缓冲区:
打开文件时,系统为文件开辟专门的数据存储区域。
文件号:
每个文件缓冲区都有一个编号。
文件号就代表文件,对文件的操作都是通过文件号进行的。
可以由程序员指定,也可以由FreeFile函数获得。
2.读写操作读操作:
将数据从文件读入到变量(外存到内存)(输入)。
写操作:
将数据从变量写入到文件(内存到外存)(输出)。
读写操作都要先经文件缓冲区,然后再提交给变量或文件。
3.关闭文件避免数据丢失情况发生。
8.3顺序文件,8.3.1引例例8.1编写程序,要求是:
(1)将两个学生的学号、姓名和成绩写入文件C:
Scores.dat。
(2)按原有的数据类型从文件C:
Scores.dat中读出数据,计算平均成绩并显示在窗体上。
(3)根据文本文件的行结构特性,按行从文件C:
Scores.dat中读出数据并显示在窗体上。
分析:
(1)对文件操作首先打开文件,用Open语句;
(2)对文件进行读写操作可以使用VB提供的读写语句。
8.3.2常用语句和函数1.打开文件Open文件名For模式As#文件号
(1)文件名字符串常量或字符型变量
(2)模式OUTPUT:
写操作;INPUT:
读操作;APPEND:
追加到文件末尾。
(3)文件号1511,可以用FreeFile函数获得下一个可利用的文件号。
例如,打开C:
VBSCORE,供写入数据,指定文件号为#1。
OPENC:
VBSCOREFOROUTPUTAS#1,2.写入命令
(1)Print#文件号,输出列表其中,输出列表的格式与Print方法完全一样。
例如:
保存文本框的内容假定文本框的名称为Text1,文件名为TEST.Doc。
方法1:
把整个文本框的内容一次性地写入文件。
Open“c:
TEST.docForOutputAs#1Print#1,Text1Close#1方法2:
把整个文本框的内容一个字符一个字符地写入文件。
Open“c:
TEST.docForOutputAs#1Fori=1Tolen(Text1)Print#1,Mid(Text1,i,1);NextiClose#1,
(2)Write#文件号,输出列表紧凑格式,数据项之间插入“,”,字符数据加上双引号。
例如,命令:
Write#1,One,Two,123内容:
One,Two,123若是print#1,“One”,“Two”,123则结果:
OneTwo123例8.2利用Print和Write语句把数据写入文件3.关闭文件Close#文件号,#文件号.例如:
Close#1,#2,#3Close,4.读顺序文件INPUT#文件号,变量列表把读出的每个数据项分别存放到所对应的变量。
LINEINPUT#文件号,字符串变量读一行到变量中,但读出的数据不包含回车换行符,主要用来读取文本文件。
INPUT$(读取字符数,#文件号)随意读取指定数目字符。
5.函数LOF(文件号):
返回文件的长度(总字节数)。
EOF(文件号):
返回文件指针是否到末尾的值。
指针在文件尾时,EOF函数为True,否则为False。
例如:
读文本文件的内容到文本框假定文本框名称为Text1,文件名为MYFILE.TXT。
方法一:
一行一行地读Text1.Text=OpenMYFILE.TXTForInputAs#1DoWhileNotEOF
(1)LineInput#1,InputDataText1=Text1+InputData+vbCrLfLoopClose#1,方法2:
一个字符一个字符地读DimInputDataasString*1Text1.Text=OpenMYFILE.TXTForInputAs#1DoWhileNotEOF
(1)InputData=Input$(1,#1)Text1.Text=Text1.Text+InputDataLoopClose#1,例8.4编写顺序文件读写程序。
单击“添加数据”,则将一个学生的学号、姓名和成绩添加到Score.txt文件中单击“读取数据”,则从文件读取数据并计算总分和平均成绩,最后送入文本框。
8.3.3应用举例例8.3设计一个文件加密程序。
由长度相同的一条条记录所组成的集合。
每个记录都有一个记录号。
可根据记录号计算出记录在文件中的存储位置,按记录号直接读写。
记录:
是计算机处理数据的基本单位,通常由若干个相互关联的数据项组成。
8.4随机文件,对随机文件的操作是按记录进行的,而一个记录是由多个数据项组成,因此须在程序的变量说明部分先定义记录的类型结构,再将变量说明为记录类型。
访问随机文件的程序框架由四个部分组成:
1)定义记录类型及其变量2)打开随机文件3)将记录写入随机文件或从随机文件中读出记录4)关闭随机文件,1.打开Open文件名ForRandomAs#文件号Len=记录长度2.写操作Put#文件号,记录号,变量名将一个记录变量的内容写到指定的记录位置处。
忽略记录号,则表示在当前记录后的位置插入一条记录。
3.读操作Get#文件号,记录号,变量名忽略记录号,则读出当前记录后的那一条记录。
4.关闭文件Close#文件号,#文件号.例如,Close#1,#2,#3Close,例8.5编写一个随机文件应用程序。
要求将两个学生的记录(由学号、姓名和成绩组成)写入随机文件C:
Score.dat,记录号分别为1和4,然后从中读出第4条记录并显示在窗体上。
分析:
访问随机文件前要定义记录类型及其变量,然后打开文件,进行读写操作,最后关闭文件。
例8.6编写学生信息管理程序追加记录(Command1):
将一个学生的信息作为一条记录添加到随机文件末尾。
显示记录(Command2):
显示在右边文本框(text4)中指定的记录。
二进制文件的访问方法与随机文件类似,也用PUT和GET语句。
不同的是二进制文件访问单位是字节,随即文件访问单位是记录。
1.打开Open文件名ForBinaryAs#文件号2.写操作Put#文件号,位置,变量名写入长度等于变量长度的数据。
3.读操作GET#文件号,位置,变量名从指定位置开始读出长度等于变量长度的数据存入变量中,数据读出后移动变量长度位置,如果忽略位置,则表示从文件指针所指的位置开始读出数据,数据读出后移动变量长度位置。
8.5二进制文件,例8.7文件复制DimcharAsByteDimFileNum1asinteger,FileNum2asIntegerFileNum1=FreeFile打开源文件OpenC:
STUDENT.docForBinaryAs#FileNum1FileNum2=FreeFile打开目标文件OpenC:
STUDENT.txtForBinaryAs#FileNum2DoWhileNotEOF(FileNum1)Get#1,char从源文件读出一个字节Put#2,char将一个字节写入目标文件LoopClose#FileNum1Close#FileNum2,8.6常用的文件操作语句和函数,1.FileCopy语句格式:
FileCopysource,destination功能:
复制一个文件。
说明:
FileCopy语句不能复制一个已打开的文件。
2.Kill语句格式:
Killpathname功能:
删除文件。
说明:
pathname中可以使用统配符“*”和“?
”。
例如:
Kill*.TXT3.Name语句格式:
NameoldpathnameAsnewpathname功能:
重新命名一个文件或目录。
说明:
(1)Name具有移动文件的功能。
(2)不能使用统配符“*”和“?
”,不能对一个已打开的文件上使用Name语句。
4.ChDrive语句格式:
ChDrivedrive功能:
改变当前驱动器。
说明:
如果drive为“”,则当前驱动器将不会改变;如果drive中有多个字符,则ChDrive只会使用首字母。
5.MkDir语句格式:
MkDirpath功能:
创建一个新的目录。
6.ChDir语句格式:
ChDirpath功能:
改变当前目录。
例如:
ChDirD:
TMP7.RmDir语句格式:
RmDirpath功能:
删除一个存在的目录。
说明:
只能删除空目录。
8.CurDir函数格式:
CurDir(drive)功能:
利用CurDir函数可以确定任何一个驱动器的当前目录。
说明:
drive为,则CurDir返回当前驱动器的当前目录。
例8.8利用ChDrive和ChDir语句改写例8.0中的File1_DblClick()事件过程。
SubFile1_DblClick()ChDriveDrive1.Drive设置缺省驱动器ChDirFile1.Path设置缺省目录RetVal=Shell(File1.FileName,1)EndSub,例8.9为例8.0添加事件过程File1_KeyDown(),使之支持Del键,即按下Del键删除选定的文件。
SubFile1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=vbKeyDeleteThenChDriveDrive1.DriveChDirFile1.PathKillFile1.FileNameFile1.Refresh文件删除后更新文件列表框EndIfEndSub,本章小节,文件文件是记录的集合,三种访问模式顺序访问打开Open文件名,模式,文件号写Print、Write读Input#文件号,变量LineInput#文件号随机访问Open文件名ForRandomAs#文件号Len=长度读Get写Put二进制访问与随机访问模式类似,本章目录,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八 数据文件
![提示](https://static.bingdoc.com/images/bang_tan.gif)