dd文件的概念.ppt_第1页
dd文件的概念.ppt_第2页
dd文件的概念.ppt_第3页
dd文件的概念.ppt_第4页
dd文件的概念.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章 过程,8.1 文件的概念 8.2 顺序文件操作 8.3 随机文件操作 8.4 二进制文件操作 8.5 常用文件操作语句和函数,8.1 文件的概念,一、文件及其结构 文件:存储在外部介质上数据的集合,按名存取。 磁盘文件是由数据记录组成。记录是计算机处理数据的基本单位,它由一组具有共同属性相互关联的数据项组成。,二、文件分类,根据访问文件的方式将文件分成3类: 顺序文件 随机文件 二进制文件。,1顺序文件 顺序文件(Sequential File)是普通的文本文件。顺序文件中的记录按顺序一个接一个地排列。读写文件存取记录时,都必须按记录顺序逐个进行。一行一条记录(一项数据),记录可长可短

2、,以“换行”字符为分隔符号。,2随机文件 随机文件(Random Access File)是可以按任意次序读写的文件,其中每个记录的长度必须相同。在这种文件结构中,每个记录都有其唯一的一个记录号,所以在读取数据时,只要知道记录号,便可以直接读取记录。,随机文件的文件结构,3二进制文件 二进制文件(Binaryfile)是字节的集合、它直接把二进制码存放在文件中。 除了没有数据类型或者记录长度的含义以外,它与随机访问很相似。 二进制访问模式是以字节数来定位数据,在程序中可以按任何方式组织和访问数据,对文件中各字节数据直接进行存取。,8.2 顺序文件操作,在程序中对文件的操作,通常按3个步骤进行:

3、,8.2.1 顺序文件的打开与关闭,1。打开顺序文件,其使用格式如下: Open FileName For Input | Output | Append LockAs filenumber 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 #1,2、关闭文件Close 语句 使用格式如下: Close filenumberlist 其中: filenumberlist:可选项,为文件号列表,如

4、:#1, #2, #3,如果省略,则将关闭Open语句打开的所有活动文件。 例如: Close #1,#2,#3 Close,8.2.2 顺序文件的读写操作,向文件写入内容使用 Print # 语句或Write#语句,在程序是数据输出。,1Print语句 使用格式:PRINT #, 说明:文件号为以写方式打开文件的文件号; 输出列表为用分号或逗号分隔的变量、常量、空格和定位函数序列。,2Write命令 使用格式:Write #, Write语句采用紧凑格式。数据项之间插入“,”,并给字符数据加上双引号。,2. 顺序文件读操作 从现存文件中读入数据,应以顺序Input方式打开该文件。然后使用 I

5、nput# 语句、Line Input# 语句和Input( )函数读入到程序变量中。 使用格式如下: INPUT #文件号,变量列表 把读出的每个数据项分别存放到所对应的变量。 LINE INPUT #文件号,字符串变量 读一行到变量中,主要用来读取文本文件。 INPUT$(读取字符数, #文件号) 读取指定的数量的字符,作为函数的返回值。,3与读文件操作有关的几个函数 (1)Lof 函数 LOF函数将返回某文件的字节数。例如,LOF(1)返回#1文件的长度,如果返回0值,则表示该文件是一个空文件。 (2)Loc 函数 Loc函数将返回在一个打开文件中读写的记录号;对于二进制文件,它将返回最

6、近读写的一个字节的位置。 (3)Eof 函数 Eof 函数将返回一个表示文件指针是否到达文件末尾的标志。如果到了文件末尾,Eof 函数返回TRUE(-1),否则返回FALSE(0)。,例8.1 编程将一文本文件的内容读到文本框 假定文本框名称为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+vb

7、CrLf Loop Close #1,方法2:一次性读 txtTest.Text Open MYFILE.TXT For Input 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,8.3 随机文件操作,8

8、.3.1 随机文件的打开与关闭 1打开随机文件 打开随机文件格式为: OPEN FileName FOR Random Access Lock As filenumber Len = reclength,例如: Open d:abc.dat For Random Access Read As #1 Len = 20,2关闭随机文件 随机文件的关闭与关闭顺序文件相同。 8.3.2 写随机文件 Put #文件号,记录号,变量名 将一个记录变量的内容写到指定的记录位置处。 忽略记录号,则表示在当前记录后的位置插入一条记录。 8.3.3读随机文件 Get #文件号,记录号,变量名 忽略记录号,则读出当

9、前记录后的那一条记录。,例8.2 设计一个简单的学生成绩管理程序,使用随机文件存储学生信息。程序的运行界面下图所示,该程序的具有数据添加、修改、删除及学生信息顺序查询等功能。,在标准模块Module1中定义学生信息数据类型及全局变量: Type Student 定义学生信息记录类型 Id As String * 8 Name As String * 10 Class As String * 10 Subject As String * 20 Mark(1 To 3) As Integer End Type 定义Student类型的变量存放当前记录内容 Public Stu As Student

10、 Public Filename As String 定义变量存放学生信息文件名 Public Rec_no As Integer 定义变量存放当前记录号 Public Rec_total As Integer 定义变量存放总记录数 Public Rec_long As Integer 定义变量存放记录长度,1 打开文件 Open 文件名 For Binary As #文件号 2. 写操作 Put #文件号,位置,变量名 写入长度等于变量长度的数据。 3. 读操作 GET #文件号,位置,变量名 从指定位置开始读出长度等于变量长度的数据存入变量中,数据读出后移动变量长度位置,如果忽略位置,则表

11、示从文件指针所指的位置开始读出数据,数据读出后移动变量长度位置。,8.4 二进制文件操作,例8.3 编程序实现将D盘根目录中的文件Abc.dat复制到A 盘,且文件名改为Myfile.dat。 Dim char As Byte 打开源文件 Open D:Abc.dat For Binary As # 1 打开目标文件 Open A:Myfile.dat For Binary As # 2 Do While Not EOF(1) Get #1, , char 从源文件读出一个字节 Put #2, , char 将一个字节写入目标文件 Loop Close#1, #2,8.5 常用文件操作语句和函

12、数、,1. 改变当前驱动器(ChDrive 语句) 格式:ChDrive drivename 功能:改变当前驱动器。 说明: 如果drive为“”,则当前驱动器将不会改变;如果drive中有多个字 符,则ChDrive只会使用首字母。 例如:ChDrive D 及ChDrive D: 和ChDrive Dasd 都是将当前驱动器设为D盘。,8.5.1 文件操作语句,2. 改变当前目录(ChDir 语句) 格式:ChDir path 功能:改变当前目录。 例如:ChDir D:TMP 说明:ChDir语句改变缺省目录位置,但不会改变缺省驱动器位置。例如,如果缺省的驱动器是C,则上面的语句将会改变

13、驱动器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只能删除空子目录,如果想要

14、使用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) 不能使

15、用统配符“*”和“?”,不能对一个已打开的文件上使用Name语句。,7.设置文件属性SetAttr 语句。 格式: SetAttr FileName, attributes 其参数含义: FileName:必要参数。一个文件名的字符串表达式。 Attributes:必要参数。常数或数值表达式,其总和用来表示文件的属性。Attributes参数设置下表:,1 获得当前目录CurDir函数 格式:CurDir(drive) 功能:利用CurDir函数可以确定指定驱动器的当前目录。 说明:可选的Drive参数是一个字符串表达式,它指定一个存在的驱动器。如果没有指定驱动器,或Drive是零长度字符串(

16、“”),则CurDir会返回当前驱动器的路径。 例如: str=CurDir(“C:”) 获得C盘当前目录路径,并赋值给变量Str,8.5.2 文件操作函数,获得文件属性GetAttr函数。 格式:GetAttr(FileName) 功能:返回代表一个文件、目录、或文件夹的属性的Integer数 据。,GetAttr返回的值及代表的含义下表,3. FileDateTime函数 格式:FileDateTime(FileName) 功能:返回一个Variant (Date),此值为一个文件被创建或最后修改后的日期和时间。,4FileLen函数 格式:FileLen(FileName) 功能:返回一个Long,代表一个文件的长度,单位是字节。,5Shell函数和Shell过程,在VB中,可以调用在DOS下或Windows下运行的应用程序:,函数调用形式: ID=Shell( FileName ,WindowType ) 说明:执行一个可执行文件,返回一个Variant (Double),如果成功的话,代表这个程序的任务ID,它是一个唯一的数值,用来指明正在运行的程序。若不成功,则会返回 0 过程调用形式: Shell FileName

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论