《第12章数据文件.ppt》由会员分享,可在线阅读,更多相关《第12章数据文件.ppt(45页珍藏版)》请在三一文库上搜索。
1、第12章 数据文件,12.1 文 件 概 述 12.2 文件系统控件 12.3 常用文件操作语句和函数 12.4 文件的基本操作,12.1 文 件 概 述,1文件结构 为了有效地存取数据,数据必须以某种特定的方式存放,这种特定的方式称为文件结构。Visual Basic 6.0文件结构由记录组成,记录由字段组成,字段由字符组成。,(1)字符(Character):是构成文件的基本单位。 (2)字段(Field):也称域。字段由若干字符组成,用来表示一项数据。 (3)记录(Record):由一组相关的字段组成。 (4)文件(File):由记录组成,一个文件含有一个以上的记录。,2文件种类 根据不
2、同的分类标准,文件可分为不同的类型。分类标准、类型及不同类型文件 。,12.2 文件系统控件,为了管理计算机中的文件,Visual Basic 6.0提供了文件系统控件。文件系统控件有3种:驱动器列表框(DriverListBox),目录列表框(DirListBox),文件列表框(FileListBox),在工具箱中的图标如图12-2所示:,12.2.1 文件系统控件属性 驱动器列表框(DriverListBox),目录列表框(DirListBox),文件列表框(FileListBox)有许多标准属性,包括Enabled、FontBold、FontItalic、FontName、FontSiz
3、e、Height、Left、Name、Top、Visible、Width等。此外这3种文件系统控件还有独特的属性。3种文件系统控件重要属性见表12-2。,1驱动器列表框 驱动器列表框的重要属性是Drive。 格式: 驱动器列表框名称.Drive=驱动器名, 驱动器名可以省略,省略时为当前驱动器。 Drive属性只能用程序代码设置,不能通过属性窗口设置。 在程序运行期间,驱动器列表框下拉显示系统所拥有的驱动器名列表。,2目录列表框 目录列表框的重要属性是Path。 格式: 目录列表框名称.Path=“路径” 如果省略“路径”名,则显示当前路径。 Path属性只能用程序代码设置,不能通过属性窗口设
4、置。, 目录列表框只显示当前驱动器上的目录。如果要显示其他驱动器上的目录,必须改变路径,重新设置Path属性。 目录列表框以列表的方式显示当前的目录结构。,3文件列表框 文件列表框的重要属性有3个,分别是:Path、FileName、Pattern。文件列表框用来显示当前目录下的指定的文件。,(1)Path属性 格式: 文件列表框名称.Path=“路径” Path属性用来显示当前目录下的文件。 Path属性只能用程序代码设置,不能通过属性窗口设置。,(2)FileName属性 格式: 文件列表框名称. FileName =文件名 FileName属性用来设置和返回某一选定的文件名称。 File
5、Name属性只能用程序代码设置,不能通过属性窗口设置。,(3)Pattern属性 格式:文件列表框名称. Pattern =属性值 Pattern属性用来设置在执行时要显示的某一种类型的文件。 Pattern属性可以在设计阶段用属性窗口设置,也可以通过程序代码设置。 Pattern属性默认值为“*.*”,即所有文件。设置时可使用“*”和“?”通配符号。如*.exe为列出所有扩展名为exe的文件。,12.2.2 文件系统控件重要事件 文件系统控件重要事件见表12-3。 在实际应用中,3个文件系统控件必须协调工作,即同步操作才可以达到路径和文件同步的目的。这就可以通过Change、Path事件来完
6、成。,例12.1 在窗体上建立驱动器列表、目录列表、文件列表,使3个控件同步。即选定驱动器,目录列表框跟随显示为当前驱动器目录;选定目录,文件列表框跟随显示当前目录的文件。 操作如下: (1)界面设计 在窗体上建立如图12-6所示的界面。,(2)程序代码 编写如下事件过程: Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub 分析:该事件过程产生驱动器列表和目录列表的同步,Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub 分析:该事件过程产生目录列表和文件列表的
7、同步,注意应双击文件夹,文件列表才可改变。,(3)运行结果 运行程序,改变目录和驱动器,可见驱动器列表、目录列表、文件列表协调一致。如图12-7所示。,12.3 常用文件操作语句和函数,12.3.1 文件指针 12.3.2 与文件操作相关的语句和函数 12.3.3 其他语句和函数,12.4 文件的基本操作,12.4.1 顺序文件的操作 12.4.1.1 打开(或建立)顺序文件 打开或建立顺序文件用Open语句。 格式:Open “文件名” For方式 As # 文件号 Len=记录长度,Open语句的功能是:为文件的输入输出分配缓冲区,并确定缓冲区所使用的存取方式。 说明: (1)文件名可以是
8、字符串常量,也可以是字符串变量。文件名不可省略。,(2)“方式”为下列形式之一: Output打开或创建一个顺序文件,对该文件进行写操作。 Input打开一个顺序文件,对该文件进行读操作。 Append打开一个顺序文件,在该文件末尾追加记录,文件指针定位在末尾。,(3)“文件号”是一个介于1511之间的整数。当打开一个文件并为其指定一个文件号后,该文件号就代表该文件。直到文件关闭后,此文件号才可为其他文件使用。 (4)“记录长度”是一个整型表达式。指定缓冲区字符数,最大不能超过32767字节。默认时,缓冲区的容量为512字节。,12.4.1.2 关闭顺序文件 当结束文件的读写操作后,必须将文件
9、关闭,否则会造成数据丢失。 格式:Close#文件号,#文件号 说明: (1)Close语句是在打开文件之后进行的操作。格式中的文件号是Open 语句已使用的文件号。,(2)语句中的“文件号”是可选的,当不指定文件号时,则将所有打开的文件全部关闭。 (3)关闭一个数据文件具有两方面的作用,第一、把数据缓冲区的数据写到文件中,因写操作语句通常只是将数据放入缓冲区;第二、释放与该文件相联系的文件号,以供其他Open语句使用。,12.4.1.3 顺序文件的写操作 将数据写入文件由Print# 或Write#语句来完成。 1Print#语句 格式: Print#文件号,Spc(n)|Tab(n)表达式
10、列表;|, Print#语句与Print方法的功能类似。Print方法所“写”的对象是窗体、打印机和控件,而Print#所写的对象是文件。,2Write#语句 格式: Write#文件号,表达式列表 Write#与Print#语句一样可以将数据写入顺序文件中。但Write#语句写入的内容以紧凑格式存放。,12.4.1.4 顺序文件的读操作 1Input#语句 格式: Input #文件号,变量列表 2Line Input#语句 格式: Line Input #文件号,字符串变量,3Input$函数 格式:Input$(n,#文件号) 说明: 函数返回从指定文件中读出的n个字符的字符串。即它可以
11、从数据文件中读取指定数目的字符。例如: x$=Input$(100,#1) 从文件号为1的文件中读取100个字符,并将它存入变量x$。,12.4.2 随机文件的操作 1打开随机文件 打开随机文件仍用Open语句。 格式:Open “文件名“ For Random As # 文件号 Len=记录长度 用Open语句的Random方式即打开随机文件,文件打开后,可同时进行读写操作。,说明: (1)文件名和文件号含义与顺序文件相同。 (2)For后的方式为Random,不同于顺序文件。For可以省略。 (3)“记录长度”为整数,指明记录的长度。默认为128个字节。,2关闭随机文件 随机文件的关闭与顺
12、序文件相同,即语句格式为: Close#文件号,#文件号,3随机文件的写操作 随机文件由Put语句来完成写操作。 格式: Put #文件号,记录号,变量名 Put语句的含义为,将一个记录变量的内容,写入被打开的随机文件的指定记录。,4随机文件的读操作 随机文件由Get语句来完成读操作。 格式: Get #文件号,记录号,变量名 Get语句的含义为将随机文件的指定记录读入记录变量。,12.4.3 二进制文件的操作 1打开二进制文件 打开二进制文件同样用Open语句。 格式: Open“文件名“ For Binary As # 文件号 用Open语句的Binary方式即可打开二进制文件,同随机文件
13、一样,文件打开后,即可同时进行读写操作。,说明: (1)文件名和文件号含义与顺序文件相同。 (2)For后的方式为Binary。 (3)二进制文件的访问是以字节为单位,而不是以记录为单位。文件打开时文件指针指向第一个字节,以后随处理命令而移动。,2关闭二进制文件 二进制文件的关闭与顺序文件和随机文件相同。 格式: Close#文件号,#文件号,3二进制文件的写操作 二进制文件同样由Put语句来完成写操作。 格式: Put #文件号,位置,变量名 这里Put语句的含义为从指定“位置”的字节数后开始,一次写入长度等于变量长度的数据。如果忽略位置,则表示从文件指针的当前位置开始写入。,4二进制文件的读操作 二进制文件同样由Get语句来完成读操作。 格式: Get #文件号,位置,变量名 这里Get语句为从指定位置开始读取长度等于变量长度(字节数)的数据并保存在变量中,如果省略位置,则从文件指针所在的位置开始读取,数据读出后指针移动变量长度的位置。,
链接地址:https://www.31doc.com/p-3124590.html