第12章 数据.ppt
《第12章 数据.ppt》由会员分享,可在线阅读,更多相关《第12章 数据.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1212章章 数数 据据 文文 件件第第1212章章 数数 据据 文文 件件 大大多多数数的的应应用用程程序序都都需需要要读读写写磁磁盘盘文文件件。本本章章介介绍绍如如何何建建立立文文件件、读读取取文文件件、写写文文件件以以及及文文件件夹夹中中文文件件的的删删除除、复制、更名等各种操作。复制、更名等各种操作。v12.1 文件的结构与分类文件的结构与分类 文文件件是是指指记记录录在在外外部部介介质质上上的的信信息息的的集集合合,文文件件的的结结构构是是指指如如何何合合理理地地组组织织数数据据而而形形成成文文件件,当当然然这这与与文文件件的的类类型有关。型有关。12.1.1 12.1.1 文件
2、的分类文件的分类 根据不同的分类标准,根据不同的分类标准,VB文件可以分为不同的类型。文件可以分为不同的类型。1.按文件性质分类按文件性质分类 根据文件的性质,可分为程序文件和数据文件两大类。根据文件的性质,可分为程序文件和数据文件两大类。1)程程序序文文件件:这这种种文文件件存存放放的的是是可可供供计计算算机机执执行行的的程程序序,包括源程序文件和可执行程序文件。包括源程序文件和可执行程序文件。2)数数据据文文件件:用用来来存存放放运运行行程程序序所所需需的的数数据据,或或用用来来存存储程序的运行结果。储程序的运行结果。2.按存取方式和结构分类按存取方式和结构分类 根根据据文文件件中中数数据
3、据存存取取方方式式的的不不同同,可可以以将将数数据据文文件件分分为为顺序文件和随机文件两大类。顺序文件和随机文件两大类。1)顺顺序序文文件件:数数据据(通通常常以以记记录录的的形形式式存存放放)的的写写入入是是一一个个接接一一个个依依次次进进行行的的。数数据据在在文文件件中中的的存存放放次次序序,以以及及读读出出次次序序与与写写入入数数据据时时的的顺顺序序一一致致,也也是是从从头头到到尾尾按按序序进进行的。行的。2)随随机机文文件件:数数据据通通常常也也以以记记录录的的形形式式存存放放,但但与与顺顺序序文文件件不不同同的的是是,其其每每条条记记录录的的长长度度相相等等,且且拥拥有有一一个个唯唯
4、一一的记录号。的记录号。3.按编码方式分类按编码方式分类 根根据据文文件件中中存存储储信信息息所所使使用用的的编编码码方方式式,可可以以将将文文件件分分为为ASCII文件和二进制文件。文件和二进制文件。1)ASCII文文件件:又又称称为为文文本本文文件件,它它以以ASCII方方式式存存储储,数数值值型型数数据据中中的的每每位位数数字字分分别别使使用用代代表表它它们们的的ASCII码码存存储,汉字的存储则使用双字节的汉字字符集编码。储,汉字的存储则使用双字节的汉字字符集编码。2)二二进进制制文文件件:以以二二进进制制方方式式保保存存信信息息,该该类类文文件件不不具具有有可可读读性性,不不能能使使
5、用用TYPE命命令令输输出出或或显显示示,也也不不能能用用文文本编辑器建立或修改,占空间较小。本编辑器建立或修改,占空间较小。12.1.2 12.1.2 文件的结构文件的结构 为为了了有有效效地地存存取取数数据据,数数据据必必须须以以某某种种特特定定的的方方式式存存放放,这这种种特特定定的的方方式式就就是是文文件件的的结结构构。VB的的数数据据文文件件由由记记录录组组成,记录由字段组成,字段由字符组成。成,记录由字段组成,字段由字符组成。1)字字符符(Character):是是构构成成文文件件的的最最基基本本单单位位,可可以以是是数数字字、字字母母、特特殊殊符符号号或或单单一一的的字字节节。一
6、一个个字字符符通通常常用用一一个字节存放,一个汉字或全角字符则用两个字节存放。个字节存放,一个汉字或全角字符则用两个字节存放。2)字字段段(Field):又又称称域域,由由若若干干个个字字符符组组成成,用用来来表表示示一项数据。一项数据。3)记记录录(Record):由由一一组组相相关关的的字字段段组组成成。例例如如在在通通信信录录中中,每每个个人人的的姓姓名名、单单位位、住住址址、电电话话号号码码等等组组成成一一个个记录。记录。4)文件文件(File):由记录组成。:由记录组成。v12.2 文件操作语句和函数文件操作语句和函数 在在Visual Basic中中,对对于于数数据据文文件件的的处
7、处理理,传传统统的的方方法法是是通通过过使使用用Open语语句句以以及及一一些些相相关关的的语语句句和和函函数数来来实实现现的的。这这些些语语句句和和函函数数,适适用用于于顺顺序序文文件件、随随机机文文件件和和二二进进制制文文件的访问。件的访问。12.2.1 12.2.1 数据文件的操作数据文件的操作 在在微微型型计计算算机机中中,数数据据文文件件一一般般为为磁磁盘盘文文件件。从从磁磁盘盘文文件件向向计计算算机机的的内内存存传传送送数数据据,对对于于计计算算机机来来说说,属属于于“输输入入”操操作作,称称为为“读读文文件件”。从从计计算算机机的的内内存存向向磁磁盘盘文文件件传送数据,则是计算机
8、的传送数据,则是计算机的“输出输出”操作,称为操作,称为“写文件写文件”。为为了了有有效效地地管管理理文文件件的的输输入入输输出出操操作作,每每一一个个打打开开的的数数据据文文件件中中都都有有一一个个指指针针,指指向向下下一一次次将将要要读读写写的的数数据据位位置置,称称为为“文文件件指指针针”或或“记记录录指指针针”。当当缺缺省省读读写写位位置置时时,数据的读出或写入总是指向文件指针的当前位置。数据的读出或写入总是指向文件指针的当前位置。数据文件的操作,一般按以下数据文件的操作,一般按以下3个步骤进行:个步骤进行:1)打打开开(或或建建立立)文文件件:一一个个数数据据文文件件,首首先先必必须
9、须打打开开才才能能使使用用。如如果果文文件件不不存存在在,在在执执行行某某些些打打开开命命令令时时,将将建立一个新文件。建立一个新文件。2)读读写写文文件件:执执行行文文件件的的“写写”操操作作,就就是是把把内内存存中中的的数数据据传传输输到到外外部部设设备备(一一般般为为磁磁盘盘)并并予予以以存存储储的的过过程程;执执行行文文件件的的“写写”操操作作,则则是是把把文文件件中中的的数数据据传传输输到到计计算算机内存的过程。读写文件是数据文件处理的核心部分。机内存的过程。读写文件是数据文件处理的核心部分。3)关关闭闭文文件件:对对于于一一个个不不再再使使用用的的文文件件,应应执执行行关关闭闭命命
10、令,以便释放相关的文件缓冲区。令,以便释放相关的文件缓冲区。12.2.2 12.2.2 文件的打开与关闭语句文件的打开与关闭语句1.Open语句语句 在在对对文文件件执执行行任任何何读读写写操操作作之之前前,必必须须打打开开文文件件。Open语语句句用用来来打打开开或或建建立立一一个个文文件件,分分配配一一个个缓缓冲冲区区供供文文件件进进行输入行输入/输出,并决定缓冲区的访问方式。其语法格式为:输出,并决定缓冲区的访问方式。其语法格式为:Open文文件件名名For读读写写方方式式Access存存取取类类型型 锁锁定定类型类型 As#文件号文件号Len=记录长度记录长度2.Close语句语句 C
11、lose语语句句用用来来关关闭闭Open语语句句所所打打开开的的输输入入/输输出出文文件件。其语法格式为:其语法格式为:Close#文件号文件号,#文件号文件号12.2.3 12.2.3 文件访问函数文件访问函数1.EOF函数函数 EOF函函数数用用于于测测试试指指定定文文件件的的结结束束状状态态,通通常常用用来来检检查查以以Input方式打开的顺序文件。其语法格式为:方式打开的顺序文件。其语法格式为:EOF(文件号文件号)2.FreeFile函数函数 FreeFile函函数数返返回回指指定定范范围围内内下下一一个个可可用用的的文文件件号号。其其语语法格式为:法格式为:FreeFile(区间号
12、区间号)12.2.3 12.2.3 文件访问函数文件访问函数3.Input函数函数 Input函函数数返返回回它它所所读读出出的的所所有有字字符符,包包括括逗逗号号、空空格格符符、引引号号以以及及回回车车符符和和换换行行符符等等,可可用用于于以以Input方方式式打打开开的的顺顺序文件或以二进制文件方式打开的文件。其语法格式为:序文件或以二进制文件方式打开的文件。其语法格式为:Input(字符个数字符个数,#文件号文件号)4.Len函数函数 Len函函数数返返回回字字符符串串表表达达式式中中包包含含字字符符的的数数目目,或或是是存存储一个变量所需的字节数。其语法格式为:储一个变量所需的字节数。
13、其语法格式为:Len(字符串表达式字符串表达式)5.Loc函数函数 Loc函函数数返返回回一一个个用用Open语语句句打打开开文文件件的的上上一一次次读读写写位位置。其语法格式为:置。其语法格式为:Loc(文件号文件号)6.LOF函数函数 LOF函函数数返返回回用用Open语语句句打打开开文文件件的的大大小小(以以字字节节为为单单位)。其语法格式为:位)。其语法格式为:LOF(文件号文件号)7.Seek函数函数 Seek函函数数返返回回一一个个用用Open语语句句打打开开的的文文件件的的当当前前读读写写位位置。其语法格式为:置。其语法格式为:Seek(文件号文件号)v12.3 顺序文件的操作顺
14、序文件的操作 顺顺序序文文件件的的打打开开与与关关闭闭由由Open语语句句和和Close语语句句来来实实现现。打开顺序文件的基本语法格式为:打开顺序文件的基本语法格式为:Open文文件件名名For Input|Output|Append As文文件件号号Len=buffersize 其其中中参参数数说说明明参参见见12.2.2。下下面面介介绍绍用用来来对对顺顺序序文文件件进进行行读写操作的语句。读写操作的语句。12.3.1 12.3.1 顺序文件的写操作顺序文件的写操作 要要将将数数据据写写入入文文本本文文件件,应应以以Output或或Append方方式式打打开开该该文文件件。然然后后使使用用
15、Print#或或者者Write#语语句句将将数数据据写写入入文文件件中。中。1.Print#语句语句 Print#语语句句将将格格式式化化数数据据写写入入顺顺序序文文件件中中,其其功功能能与与多多次次使使用用的的Print方方法法类类似似,只只是是Print方方法法输输出出的的对对象象是是窗窗体体、图图片片框框或或打打印印机机,而而Print#语语句句的的输输出出对对象象是是文文件件。其其语语法格式为:法格式为:Print#文文件件号号,Spc(n)|Tab(n)表表达达式式列列表表,|;【例例12-1】用用Print#语句向顺序文件输出数据。语句向顺序文件输出数据。窗体的窗体的Click事件
16、代码:事件代码:Private Sub Form_Click()Open c:out1.txt For Output As#1 Print#1,1;2;3;4;5 用紧凑格式输出数值型数据用紧凑格式输出数值型数据 Print#1,计算机计算机;等级考试等级考试;1;2;3 用用紧紧凑凑格格式式输输出出字字符串型数据符串型数据 Print#1,4,5,12.35,12-76 用标准格式输出用标准格式输出 Print#1,输出一个空行输出一个空行 Print#1,这是用这是用;Pirnt#语句语句;注意,输出列表最后有分号注意,输出列表最后有分号 Print#1,“输出的文件输出的文件”紧紧凑凑上
17、上一一个个Print#语语句句输输出出 Close#1End Sub图图12-1 用用Print#语句写入文件的格式示例语句写入文件的格式示例 运运行行程程序序,用用鼠鼠标标单单击击窗窗体体后后,用用Windows的的“记记事事本本”打打开开文文件件“out1.txt”,可可以以看看到到文文件件的的内内容容及及其其格格式式,如图如图12-1所示。所示。2.Write#语句语句 与与Print#相相同同,Write#语语句句将将输输出出列列表表指指定定的的数数据据,顺序写入文件号所代表的文件中,其语法格式为:顺序写入文件号所代表的文件中,其语法格式为:Write#文件号文件号,表达式列表表达式列
18、表 用用Write#语句写入的顺序文件具有如下的格式:语句写入的顺序文件具有如下的格式:1)字符型数据,用双引号(字符型数据,用双引号()括起来。)括起来。2)逻辑型数据,保存为逻辑型数据,保存为#TRUE#或者或者#FALSE#。3)日日期期型型数数据据,采采用用#yyyy-mm-dd hh:mm:ss#的的格格式式,或或将将日日期期部部分分和和时时间间部部分分分分开开处处理理,其其形形式式为为#yyyy-mm-dd#和和#hh:mm:ss#。4)各各数数据据项项之之间间以以紧紧凑凑格格式式存存放放,并并自自动动插插入入分分界界符符(逗号)。(逗号)。5)在在输输出出列列表表中中的的最最后后
19、一一个个字字符符写写入入文文件件后后,自自动动插插入入回车换行符。回车换行符。【例例12-2】用用Write#语句向顺序文件输出数据。语句向顺序文件输出数据。选选择择“新新建建”工工程程,进进入入窗窗体体设设计计器器,编编写写窗窗体体的的Click事件代码:事件代码:Private Sub Form_Click()Dim I As Integer,S As String Dim D As Date,B As Boolean Open c:WEXAM26160001out2.txt For Output As#1 以顺序输出方式建立并打开文件以顺序输出方式建立并打开文件 I=100:S=7734
20、56 D=Date:B=True Date函数返回系统当前的日期函数返回系统当前的日期 Write#1,I,S,D,B 写入第写入第1条记录条记录 Write#1,这是用这是用Write语句输出的文件语句输出的文件 写入第写入第2条记录条记录 Close#1 关闭文件关闭文件End Sub图图12-2 用用Write#语句写入文件的格式示例语句写入文件的格式示例 运运行行程程序序,用用鼠鼠标标单单击击窗窗体体后后,用用Windows的的“记记事事本本”打打开开文文件件“out2.txt”,可可以以看看到到文文件件的的内内容容及及其其格格式式(图(图12-2)。)。Print#语语句句与与Wri
21、te#语语句句的的区区别别:Print#语语句句根根据据指指定定的的格格式式,将将数数据据写写入入文文件件,数数据据项项之之间间不不会会自自动动插插入入分分界符,而界符,而Write#语句在数据项之间自动插入分界符。语句在数据项之间自动插入分界符。Write#语语句句适适合合输输出出不不同同类类型型的的数数据据,特特别别是是当当数数据据写写入入文文件件后后,还还需需用用其其他他程程序序读读出出进进行行处处理理的的情情况况。Print#语语句句适适合合输输出出文文本本类类型型或或列列表表格格式式的的数数据据,供供打打印印或或显显示示用。用。【例例12-3】用用Write#语语句句向向顺顺序序文文
22、件件输输出出20个个随随机机两两位位整整数。数。窗体的窗体的Click事件代码:事件代码:Private Sub Form_Click()Randomize Open c:WEXAM26160002datain.txt For Output As#1 For i=1 To 20 Write#1,Int(Rnd*90)+10 Next Close#1End Sub【例例12-4】设设在在工工程程中中有有一一个个标标准准模模块块,其其中中定定义义了了如如下下记录类型(用户自定义类型):记录类型(用户自定义类型):Type Books Name As String*10 TelNum As Stri
23、ng*20End Type 执行下列事件过程代码将在顺序文件中写入一条记录:执行下列事件过程代码将在顺序文件中写入一条记录:Private Sub Command1_Click()Dim b As Books Open c:Person.txt For Output As#1 b.Name=InputBox(输入姓名输入姓名)b.TelNum=InputBox(输入电话号码输入电话号码)Write#1,b.Name,b.TelNum Close#1End Sub12.3.2 12.3.2 顺序文件的读操作顺序文件的读操作 要要读读取取文文本本文文件件的的内内容容,应应以以Input方方式式打打
24、开开该该文文件件。然然后后使使用用Input#或或者者Line Input#语语句句将将文文件件复复制制到到内内存存变变量中。量中。1.Input#语句语句 Input语语句句从从一一个个打打开开的的顺顺序序文文件件中中读读出出数数据据,并并将将数数据据赋给指定的变量,其语法格式为:赋给指定的变量,其语法格式为:Input#文件号文件号,变量列表变量列表 通通常常,用用Write#语语句句写写入入文文件件的的数数据据,可可使使用用Input#语语句句读读出出数数据据。读读数数据据时时,一一般般不不需需处处理理就就可可直直接接将将数数据据指定给变量。指定给变量。【例例12-5】用用Input#语
25、语句句读读取取例例12-2所所建建立立文文件件中中的的数数据据,并将数据显示在窗体上。并将数据显示在窗体上。选选择择“新新建建”工工程程,进进入入窗窗体体设设计计器器,编编写写窗窗体体的的Click事件代码:事件代码:Private Sub Form_Click()Dim I As Integer,S As String Dim D As Date,B As Boolean Open c:out2.txt For Input As#1 以顺序输入方式打开文件以顺序输入方式打开文件 Input#1,I,S,D,B 读取第读取第1条记录条记录 Close#1 关闭文件关闭文件 Cls Print
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第12章 数据 12
限制150内