




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第14章 文 件,本章内容及要求: 掌握文件系统控件(驱动器列表框DriveListBox、 目录列表框DirListBox、文件列表框FilelistBox。 掌握VB中文件的概念、种类及其结构; 掌握顺序文件的操作:打开、读/写、关闭; 了解随机文件的操作:打开、读/写、关闭; 了解二进制文件的操作:打开、读/写、关闭。,本章重点: 1. 文件系统控件驱动器列表框、目录列表框、文件列表框的使用; 2. 顺序文件的操作:打开、读/写、关闭。,1 文件的概念,一、文件及其结构 文件:存储在外部介质上数据的集合。 要求操作系统中的文件系统能提供用户按名存取方式 在操作系统中有两种文件: 字符流无
2、结构文件和记录式有结构文件 磁盘文件是由数据记录组成。记录是计算机处理数据的基本单位,它由一组具有共同属性相互关联的数据项组成。,二、文件分类,根据访问文件的方式将文件分成3类: 顺序文件、 随机文件、 二进制文件。,1顺序文件 顺序文件(Sequential File)是普通的文本文件。顺序文件中的记录按顺序一个接一个地排列。读写文件存取记录时,都必须按记录顺序逐个进行。一行一条记录(一项数据),记录可长可短,以“换行”字符为分隔符号。,结构简单; 但不能灵活存取,适用于不经常修改的文件,2随机文件 随机文件(Random Access File)是可以按任意次序读写的文件,其中每个记录的长
3、度必须相同。在这种文件结构中,每个记录都有其唯一的一个记录号,所以在读取数据时,只要知道记录号,便可以直接读取记录。,存取速度快,易更新;但占用空间大,设计程序较复杂,3二进制文件 二进制文件(Binaryfile)是字节的集合,直接把二进制码存放在文件中。 除了没有数据类型或者记录长度的含义以外,它与随机访问很相似。 二进制访问模式是以字节数来定位数据,在程序中可以按任何方式组织和访问数据,对文件中各字节数据直接进行存取。,灵活性很大; 相对的, 程序更复杂,2 文件系统控件,VB提供了3种可直接浏览系统目录结构和文件的控件: 驱动器列表框、目录列表框、文件列表框。,2.1 驱动器列表框(D
4、riveListBox) 驱动器列表框控件,通常只显示当前驱动器名称,单击向下箭头,就会下拉出当前系统拥有的所有磁盘驱动器,供用户选择。,1重要属性,Drive属性是驱动器列表框控件最重要和常用的属性,该属性在设计时不可用。,使用格式: 对象.Drive = 例如: Drive1.drive=“D:”,2重要事件Change事件,在程序运行时,当选择一个新的驱动器或通过代码改变Drive属性的设置时都会触发驱动器列表框的change事件发生。,2.2 目录列表框(DirListBox),目录列表框(DirListBox) 控件用来当前驱动器目录结构及当前目录下的所有子目录。供用户选择其中一个目
5、录为当前目录。,1常用属性 Path属性是目录列表框控件的最常用的属性,用于返回或设置当前路径。该属性在设计时是不可用的。 使用格式: 对象.Path = 其中: 用来表示路径名的字符串表达式。 例如,Dir1.Path= C:Mydir。,说明: Path属性也可以直接设置限定的网络路径 如,网络计算机名共享目录名path,List、ListCount 和 ListIndex等属性,这些属性与列表框(ListBox)控件基本相同。,目录列表框中的当前目录的ListIndex 值为-1。紧邻其上的目录具有 ListIndex 值为-2,再上一个的ListIndex值为-3,如右图所示。,2重要
6、事件Change事件 在程序运行时,每当改变当前目录,即目录列表框的Path属性发生变化时,都要触发其Change事件发生。,注意: 单击不改变当前目录 双击才能改变当前目录,3,文件列表框控件用简单列表形式显示 Path 属性指定的目录中所有指定文件类型的文件。,2.3 文件列表框(FilelistBox),1常用属性,(1)Path属性 用于返回和设置文件列表框当前目录,设计时不可用。 说明:当Path值的改变时,会引发一个PathChange事件。,(2)Filename属性 用于返回或设置被选定文件的文件名,设计时不可用。 说明:Filename属性不包括路径名。,要从文件列表框(Fi
7、le1)中获得全路径的文件名Fname$,用下面的程序代码: If Right(file1.path,1) = Then Fname$=file1.path *.Doc File1.Pattern= ?.txt“ 注意:要指定显示多个文件类型,使用“;”为分隔符 重新设置Pattern属性引发“PatternChange”事件。,(4)文件属性: Archive:True,只显示文档文件; Normal:True,只显示正常标准文件; Hidden:True,只显示隐含文件; System:True,只显示系统文件。 ReadOnly:True,只显示只读文件。,(5)MultiSelect
8、属性 文件列表框MultiSelect 属性与ListBox控件中MultiSelect 属性使用完全相同。 默认情况是0,即不允许选取多项。,(6)List、ListCount 和 ListIndex 属性 文件列表框中的List、ListCount 和 ListIndex 属性与列表框(ListBox)控件的List、ListCount 和 ListIndex 属性的含义和使用方法相同,在程序中对文件列表框中的所有文件进行操作,就有用到这些属性。 因此有:File1.FileName=File1.List(File1.ListIndex) 将文件列表框(File1)中的所有文件名显示在窗体
9、上: For i = 0 To File1.ListCount - 1 Print File1.List(i) Next i,2. 主要事件 (1)PathChange事件 当路径被代码中FileName或Path属性的设置所改变时,此事件发生。 说明:可使用PathChange事件过程来响应FileListBox控件中路径的改变。 (2)PatternChange事件 当文件的列表样式,如:*.*,被代码中对FileName或Path属性的设置所改变时,此事件发生。 说明:可使用PatternChange事件过程来响应在FileListBox控件中样式的改变。,(3) Click、DblCl
10、ick事件: 例如:单击输出文件名。 Sub filFile_Click( ) MsgBox filFile.FileName End Sub 例如:双击执行可执行程序 Sub File1_DblClick( ) Dim Fname As String If Right(file1.path,1) = Then Fname=file1.path Next i Close #1,2. 顺序文件读操作 从现存文件中读入数据,应以顺序Input方式打开该文件。然后使用 Input# 语句、Line Input# 语句和Input( )函数读入到程序变量中。 使用格式如下: INPUT #文件号,变量
11、列表 把读出的每个数据项分别存放到所对应的变量。 LINE INPUT #文件号,字符串变量 读一行到变量中,主要用来读取文本文件。 INPUT$(读取字符数, #文件号) 读取指定的数量的字符,作为函数的返回值。,3与读文件操作有关的几个函数 (1)Lof 函数 LOF函数将返回某文件的字节数。例如,LOF(1)返回#1文件的长度,如果返回0值,则表示该文件是一个空文件。 (2)Loc 函数 Loc函数将返回在一个打开文件中读写的记录号;对于二进制文件,它将返回最近读写的一个字节的位置。 (3)Eof 函数 Eof 函数将返回一个表示文件指针是否到达文件末尾的标志。如果到了文件末尾,Eof
12、函数返回TRUE(-1),否则返回FALSE(0)。,例3 编程将一文本文件的内容读到文本框 假定文本框名称为txtTest,文件名为MYFILE.TXT。可以通过下面三种方法来实现。 方法1:一行一行读 txtTest.Text Open MYFILE.TXT For Input As #1 Do While Not EOF(1) Line Input #1, InputData txtTest.Text txtTest.Text + InputData+vbCrLf Loop Close #1,回车换行,方法2:一次性读 txtTest.Text Open MYFILE.TXT For I
13、nput As #1 txtTest.Text = Input( LOF(1),1) Close #1 方法3:一个个字符读 Dim InputData as String*1 txtTest.Text Open MYFILE.TXT For Input As #1 Do While Not EOF(1) Input #1, InputData txtTest.Text txtTest.Text + InputData Loop Close #1,例4 利用文件系统控件、组合框、文本框,制作一个文件浏览器。 要求:组合框限定文件列表框中显示文件的类型,如选定“*.Txt”文件。当在文件列表框选
14、定欲显示的文件时,在文本框显示出该文件的内容。,程序运行效果如图,4 随机文件(了解),4.1 随机文件的打开与关闭 1打开随机文件 打开随机文件格式为: OPEN FileName FOR Random Access Lock As filenumber Len = reclength,用OPEN命令以Random模式打开随机文件,同时指出记录的长度。文件打开后,可同时进行读写操作。,例如: Open d:abc.dat For Random Access Read As #1 Len = 20,2关闭随机文件 随机文件的关闭与关闭顺序文件相同。 4.2 写随机文件 Put #文件号,记录号
15、,变量名 将一个记录变量的内容写到指定的记录位置处。 忽略记录号,则表示在当前记录后的位置插入一条记录。 4.3 读随机文件 Get #文件号,记录号,变量名 忽略记录号,则读出当前记录后的那一条记录。,1. 打开文件 Open 文件名 For Binary As #文件号 2. 写操作 Put #文件号,位置,变量名 写入长度等于变量长度的数据。 3. 读操作 GET #文件号,位置,变量名 从指定位置开始读出长度等于变量长度的数据存入变量中,数据读出后移动变量长度位置,如果忽略位置,则表示从文件指针所指的位置开始读出数据,数据读出后移动变量长度位置。,5 二进制文件(了解),6 常用的文件
16、操作语句和函数,1. 改变当前驱动器(ChDrive 语句) 格式:ChDrive drive 功能:改变当前系统驱动器。 说明: 如果drive为“”,则当前驱动器将不会改变;如果drive中有多个字 符,则ChDrive只会使用首字母。 例如:ChDrive D 及ChDrive D: ChDrive Dasd 都是将当前驱动器设为D盘。,6.1 文件操作语句,2. 改变当前目录(ChDir 语句) 格式:ChDir path 功能:改变当前目录。 例如:ChDir D:TMP 说明:ChDir语句改变缺省目录位置,但不会改变缺省驱动器位置。 例如,如果缺省的驱动器是C,则上面的语句将会改
17、变驱动器D上的缺省目录,但是C仍然是缺省的驱动器: 3. 删除文件(Kill语句) 格式:Kill pathname 功能:删除文件。 说明:pathname中可以使用统配符“*”和“?”。 例如:Kill *.TXT Kill C:MydirAbc.dat,4. 建立(MkDir 语句)和删除(RmDir 语句)目录 建立目录格式:MkDir path 功能:创建一个新的目录。 例如: MkDir D:MydirABC 删除目录格式:RmDir path 功能:删除一个存在的目录。 说明:只能删除空目录。 例如: RmDir D:MydirABC“ 说明: RmDir只能删除空子目录,如果想
18、要使用RmDir来删除一个含有文件的目录或文件夹,则会发生错误。,5. 拷贝文件 FileCopy语句 格式:FileCopy source , destination 功能:复制一个文件。 例如: FileCopy D:MydirTest.doc“, A:MyTest.doc 说明: FileCopy语句不能复制一个已打开的文件。 6. 文件的更名 Name 语句 格式:Name oldpathname As newpathname 功能:重新命名一个文件或目录。 例: Name D:MydirTest.doc As A:MyTest.doc 说明:(1) Name具有移动文件的功能。 (2
19、) 不能使用统配符“*”和“?”,不能对一个已打开的文件上使用Name语句。,7. 设置文件属性SetAttr 语句。 格式: SetAttr FileName, attributes 其参数含义: FileName:必要参数。一个文件名的字符串表达式。 Attributes:必要参数。常数或数值表达式,其总和用来表示文件的属性。Attributes参数设置下表:,1. 获得当前目录CurDir函数 格式:CurDir(drive) 功能:利用CurDir函数可以确定指定驱动器的当前目录。 说明:可选的Drive参数是一个字符串表达式,它指定一个存在的驱动器。如果没有指定驱动器,或Drive是
20、零长度字符串(“”),则CurDir会返回当前驱动器的路径。 例如: str=CurDir(“E:”) 获得E盘当前目录路径,并赋值给变量Str,6.2 文件操作函数,2.获得文件属性GetAttr函数。 格式:GetAttr(FileName) 功能:返回代表一个文件、目录、或文件夹的属性的Integer数据。GetAttr返回的值及代表的含义下表,3. FileDateTime函数 格式:FileDateTime(FileName) 功能:返回一个Variant (Date),此值为一个文件被创建或最后修改后的日期和时间。,4FileLen函数 格式:FileLen(FileName) 功能:返回一个Long,代表一个文件的长度,单位是字节。,5Shell函数和Shell过程,在VB中,可以调用在DOS下或
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专题5.2 平面向量基本定理及坐标表示(原卷版)-2024年高考数学一轮复习精讲精练宝典(新高考专用)
- 2020-2021深圳市宝安区鹏晖中英文学校小学五年级数学下期中模拟试题及答案
- 肇庆车库画线施工方案
- 河北省邢台隆尧县联考2025届毕业升学考试模拟卷生物卷含解析
- 加油站车位出租合同范例
- 医疗专项设计合同范本
- 品牌故事的创作与传播计划
- 班级年度培训计划
- 班级理论知识竞赛的组织与实施计划
- 敏捷管理方法在团队中的实践计划
- 二级建造师之二建建设工程施工管理提升训练模拟题附答案
- 成品保护及文明施工措施
- 高校人才队伍建设考核评价标准
- 一年级美术下册五彩的泡泡
- 土建施工员培训课件
- 结膜炎课件完整版
- 初中英语中考总复习
- 学习弘扬枫桥精神与枫桥经验PPT枫桥经验蕴含的精神和内涵PPT课件(带内容)
- 钣金喷漆承包协议书
- 煤矿瓦斯防治八招及释义
- GB/T 27903-2011电梯层门耐火试验完整性、隔热性和热通量测定法
评论
0/150
提交评论