大学VISUAL BASIC程序设计教程-课件PPT
收藏
资源目录
压缩包内文档预览:
编号:21836467
类型:共享资源
大小:5.82MB
格式:ZIP
上传时间:2019-09-06
上传人:QQ24****1780
认证信息
个人认证
王**(实名认证)
浙江
IP属地:浙江
25
积分
- 关 键 词:
-
大学VISUAL
BASIC程序设计教程-课件PPT
大学
visual
basic
程序设计
教程
课件
ppt
- 资源描述:
-
大学VISUAL BASIC程序设计教程-课件PPT,大学VISUAL,BASIC程序设计教程-课件PPT,大学,visual,basic,程序设计,教程,课件,ppt
- 内容简介:
-
文件是存储在外部介质(如磁盘)上的以文件名标识的数据的集合。存储在磁盘上的文件称为磁盘文件,与计算机相连的设备称为设备文件。这些文件都不在计算机内,统称为外部文件。为访问存放在外部介质上的数据,应先按文件名找到所指定的文件,然后再从该文件中读取数据。 第8章 文件8.1 文件的基本概念8.2 文件的打开与关闭8.3 文件的读写操作8.4 常用的文件操作语句和函数8.5 文件系统控件退出8.1 文件的基本概念8.1.1 文件说明 文件说明指的是文件的命名规则,在VB中,文件说明的一般形式为: 设备名:文件所在的路径名文件引用名在VB中,文件说明没有大小写之分。8.1.2 文件结构和分类 1文件结构字符是构成文件的最基本单位。字段或域由若干个字符组成,用来表示一项数据。记录就是一组有相互关系的字段。 文件是记录的集合。表8-1 用户电脑购置清单 2文件种类(1)顺序文件 文件中的数据是按顺序组织的文本行,每行(即一个记录)的长度可以变化,用“换行”字符作为分隔符号。在顺序文件中,只知道第一个记录的存放位置,其他的记录无从知晓。当要查找某项数据时,只能从文件的开头,一个记录一个记录的顺序查找,直到找到所需记录为止。 在VB中,按照文件的存取方式和组成,把文件分为顺序文件、随机文件和二进制文件,在这三类文件中,数据的存取方法是不同的。(2)随机文件随机文件有时又称随机存取文件或直接存取文件,是由一组长度相等的记录组成的,一般它们以二进制形式存放,每个记录包含一个或多个字段。如果是只有一个字段的记录,可以是任何一种标准数据类型,如整数或者定长字符串。如果具有多个字段的记录,则该记录对应于用户自定义类型。对于随机文件,可以根据文件中的记录号访问任何一条记录,无须按顺序进行。在随机文件中,每个记录是固定的,记录中每个字段的长度也是固定的,且每个记录都有一个记录号,读写数据时,只需指定记录号即可,且可以同时进行读写操作,数据的存取灵活、方便、速度快,但是占用的空间大、数据组织复杂。二进制文件根据数据的编码方式,文件可以分为ASC文件和二进制文件。ASC文件即文本文件,这种文件以ASC方式保存文件,可以使用字处理软件建立和修改,但必须以纯文本方式保存。二进制文件以二进制方式保存文件,以字节数来定位数据,没有固定的格式,允许程序按所需的任何方式组织和访问数据,对文件中的各个字节数据进行存取访问和改变。二进制文件不能用普通的字处理软件进行编辑,但占用的空间较小。任何形式的文件都可以使用二进制模式进行访问。8.2 文件的打开与关闭8.2.1 文件的打开8.2.2 文件的关闭返回退出8.2.1 文件的打开在VB中,使用Open语句打开或建立文件,为文件的输入输出分配缓冲区,并确定缓冲区所使用的存取方式,其语法格式为:Open 文件说明 For方式 Access存取类型 锁定 As #文件号 Len=记录长度其中:“文件说明”:必要,字符串表达式,指定文件名,该文件名可能还包括目录、文件夹及驱动器。Access:可选。关键字,说明打开的文件可以进行的操作,有只读、只写和读/写操作。“方式”:必要,关键字。 “锁定”:可选。关键字,说明限定于其它进程打开的文件的操作。 “记录长度”:可选。小于或等于 32767(字节)的一个数。对于用随机访问方式打开的文件,该值就是记录长度。对于顺序文件,该值就是缓冲字符数。 以下是使用Open 语句的不同用法来实现文件的输出与输入的范例。(1) 以顺序输入模式打开 client1文件,若要以其他方式打开文件,必须先关闭文件。Open client1 For Input As # 1 (2)以只写的二进制方式打开文件。若要以其他方式打开文件,必须先关闭此文件。Open client1 For Binary Access Write As #1(3)下列代码以随机方式打开client1文件,文件中含有用户自定义数据类型 Record 的记录。若要以其他方式打开文件,必须先关闭此文件。Type Record 定义用户自定义数据类型。 clientID As Integer clientName As String * 16End TypeDim MyRecord As Record 声明变量。Open client1 For Random As # 1 Len = Len(MyRecord)(4)下列代码以顺序输出方式打开文件,任何过程都可以读写该文件。若要以其他方式打开文件,必须先关闭此文件。Open client1 For Output Shared As # 1 (5)下列代码以只读的二进制方式打开文件;其他过程不可以读该文件。Open client1 For Binary Access Read Lock Read As # 1(6)用随机方式打开C盘上clients文件夹下的client1文件,记录长度为512字节。Open c:clientsclient1 For Random As # 1 Len = 5128.2.2 文件的关闭Close语句用于关闭使用Open 语句所打开的输入/输出文件。其语法格式为:Close #文件号 , #文件号 若省略 Close关键字后的内容,则将关闭 Open 语句打开的所有活动文件。即使没有Close语句,当程序结束时,也将自动关闭所有打开的文件。但是Close语句还是必要的,如果不使用Close语句,可能会使得某些需要写入的数据不能从内存写入文件中。当打开的文件或设备正在输出时,执行Close语句并不会使输出信息的操作中断。 8.3.1顺序文件的读写操作1.写操作顺序文件的写操作使用Print# 语句或Wrie# 语句实现。(1)Print # 语句格式:Print #文件号, outputlist功能:将格式化显示的数据写入顺序文件中。8.3文件的读写操作例8-1Print # 语句实例:使用 Print # 语句将数据写入一个文件Open c:src.txt For Output As #1 打开输出文件 Print #1, 学生成绩表 将文本数据写入文件 Print #1, 将空白行写入文件。 Print #1, 姓名; Tab; 成绩; Tab; 备注 数据写入三个区 Print #1, 王维; ; 95 以空格隔开两个字符串 Print #1, 黄梅; ; 0; 下一个Print # 语句将不换行 Print #1, Spc(15); 舞弊 在字符串之前写入十五个空格 Print #1, Tab(5); 输入完毕! 在第5列输出字符串 Close #1 如果要将文本框的内容一次性写入文件中,可以采用如下方法:Open c:Mytext1.txt For Output As #1 Print #1,Text1.TextClose #1如果要将文本框的内容逐字地写入文件中,可以采用如下方法:Open c:Mytext2.txt For Output As #1 For i=1 to Len(Text1.Text) Print #1,Mid(Text1.Text,i,1) Next iClose #1图8-1 Print# 语句输出的内容 (2)Write # 语句格式:Write #文件号, outputlist功能:将数据写入顺序文件。与 Print # 语句不同,当要将数据写入文件时,Write # 语句会在数据项之间插入逗号,并加上双引号,没有必要在列表中键入明确的分界符。Write # 语句在将 outputlist 中的最后一个字符写入文件后会插入一个新行字符,即回车换行符,(Chr(13) + Chr(10)。 图8-2 Write# 语句输出的内容 2.读操作(1)Input # 语句格式:Input #文件号, 变量列表功能:从已打开的顺序文件中读出数据,并将数据指定给用逗号分界的变量列表中的变量。(2)Line Input # 语句格式:Line Input #文件号, 字符串变量功能:从已打开的顺序文件中读出一行并将它分配给字符串变量。(3)Input 函数格式:Input(读取的字符数, #文件号)功能:读取以 Input 或 Binary 方式打开的文件中的指定数目的字符。例8-2:将图8-2中所示文本读到文本框中:Private Sub Command1_Click() Text1.Text = Open c:src.txt For Input As #1 Do While Not EOF(1) Line Input #1, mydata Text1.Text = Text1.Text + mydata + vbCrLf Loop Close #1End Sub如果将代码进行如下改动,则可以将文件的内容逐字符地读入文本框中。运行结果同图8-3。Private Sub Command1_Click() Text1.Text = Open c:src.txt For Input As #1 Do While Not EOF(1) inputdate = Input(1, #1) Text1.Text = Text1.Text + inputdate Loop Close #1End Sub图8-3 将顺序文件的内容读到文本框中则程序运行时,单击Command1按钮,文本框中显示的内容见图8-3所示。注意设计时将Text1的MultiLine属性设置为True。8.3.2随机文件的读写操作1.写操作随机文件的写操作使用Put 语句,其功能为将一个变量的数据写入磁盘文件中,语法格式为:Put #文件号, recnumber, varname2.读操作随机文件的读操作使用Get 语句,其功能是将一个已打开的磁盘文件的一条记录的内容读入一个变量之中。语法格式为:Get #文件号, recnumber, varname 3.随机文件操作实例在上面顺序文件的实例2中,每次新建用户窗口后,变量clientnumber都清空,保存每个窗口中文本框的内容时,并没有用到变量clientnumber,而是将整个文本框的内容整体写到文件中,这样很不方便以后的查找等操作。可以这样修改程序:每次单击子窗口上的“新建”菜单项时,将提示是否保存用户选择,如果需要保存,则调用保存过程saver将clientnumber变量保存在随机文件中,然后清除文本框并将变量clientnumber清零,如果不必要保存,则直接并将变量clientnumber清零,清空文本框。为程序增加查找功能。(1)将父窗体“新建”菜单单击事件代码改为:Private Sub New_Click() Form1.showEnd Sub(2)将子窗体“新建”菜单单击事件代码改为:Private Sub New_Click() clientnumber.clientname = : clientnumber.clientcpu = : 将所有记录变量清空 Flag=MsgBox(要保存用户资料吗,vbYesNoCancel ) Select case Flag Case vbYes: Savepro 调用Savepro过程保存客户资料 Text1= Case vbNo Text1= End SelectEnd Sub(3)将savepro过程代码改为:Public Sub savepro() MDIForm1.CommonDialog1.ShowOpen FileName = MDIForm1.CommonDialog1.FileName Open FileName For Random As #1 Len = Len(clientnumber) 将记录变量clientnumber写入文件 recordnumber = LOF(1) / Len(clientnumber) + 1 Put #1, recordnumber, clientnumber Close #1End Sub(4)编写查询过程(即“编辑|查找”菜单项单击事件)代码:Private Sub Tsearch_Click() Dim name As String name = Trim(Box(输入要查找的客户姓名:) MDIForm1.CommonDialog1.ShowOpen FileName = MDIForm1.CommonDialog1.FileName Open FileName For Random As #1 Len = Len(clientnumber) recordnumber = LOF(1) / Len(clientnumber) + 1 For i=1 To recordnumber Get(1),i, clientnumber If Trim (clientnumber.clientname)=name Then textlist 找到查找的客户,调用textlist过程在Form1的文本框中显示客户信息 Exit For 退出循环 End If Next Close #1 If i recordnumber Then MsgBox(没有您要查找的客户资料!) 找不到要查找的客户信息End Sub1.FileCopy语句格式:FileCopy source,destination功能:复制一个文件。FileCopy语句不能复制一个已打开的文件,如果想要对一个已打开的文件使用 FileCopy 语句,则会产生错误。例如:将含有数据的文件C盘下client1中的内容复制为到文件D盘下的oldclient1中:Dim SourceFile, DestinationFileSourceFile = C:client1 指定源文件名。DestinationFile = D:oldclient1 指定目的文件名。FileCopy SourceFile, DestinationFile 将源文件的内容复制到目的文件中。8.4 常用的文件操作语句和函数2.Kill语句格式:Kill pathname 功能:从磁盘中删除文件。例如:Private Sub Command1_Click() h = MsgBox(确实要删除文件吗?, vbYesNo, 请确认) If h = vbYes Then Kill c:client1.txtEnd Sub3.Name语句格式:Name oldpathname As newpathname功能:重新命名一个文件、目录、或文件夹。Name语句不能创建新文件、目录或文件夹。如果在一个已打开的文件上使用 Name,将会产生错误。必须在改变名称之前,先关闭打开的文件。如果newpathname所指定的路径存在且与oldpathname指定的路径不同,则Name语句将文件移动到新的目录下,但不能将文件移动到不同的驱动器中。例如:Name c:client1.txt As c:client2.txt 将文件client1.txt更名为client2.txtName c:client2.txt As c:Newclient3.txt 将文件C盘下的client2.txt移动到C盘的New文件夹中并更名为client3.txt4.ChDrive语句格式:ChDrive drive功能:改变当前驱动驱的位置,字符串表达式drive的首字符指定将要改变到的驱动器名称。5.ChDir语句格式:ChDir path功能:改变默认目录位置,字符串表达式path指定将要改变到的默认目录名称。改变默认目录并不改变默认驱动驱。6.MkDir语句格式:MkDir path功能:创建一个新的目录。7.RmDir语句格式:RmDir path功能:删除一个存在的、空的目录。8.Loc 函数格式:Loc()功能:返回一个 Long型数,返回由文件号指定的文件的当前读/写位置。Filenumber为Open语句中使用的文件号。9. LOF 函数格式:LOF()功能:返回一个 Long型数,表示用 Open 语句打开的、文件号filenumber所对应的文件的大小,该大小以字节为单位。对于尚未打开的文件,可以使用 FileLen 函数得到其长度。例如:在C盘下的文件client1中含有数据:This Is client1s Information,程序运行时单击Command1命令按钮,将在窗体上显示数据33(号为2字节)。Private Sub Command1_Click() Dim FileLength Open c:client1 For Input As #1 打开文件。 FileLength = LOF(1) 取得文件长度。 Close #1 关闭文件 Print FileLengthEnd Sub10.EOF函数格式:EOF(filenumber)功能:返回Boolean 值 True或False,表明是否已经到达为以随机方式或顺序方式打开的文件的结尾。EOF函数的一般用法为:Do While Not EOF(filenumber) 读/写操作Loop8.5 文件系统控件 文件系统控件有三种:驱动器列表框(DriveListBox)、目录列表框(DirListBox) 和文件列表框(FileListBox)。 图8-4 驱动器列表框、目录列表框和文件列表框应用实例1.重要属性表8-2列出了三个文件系统控件的重要属性。在表8-2列出的属性中,FileName和Pattern属性可以在设计时进行设置。在运行时Pattern 属性的值的改变将产生一个 Pattern_Change 事件。Drive和Path属性只能在运行时加以引用和设置,在设计时则不能进行设置。在运行时Path 属性的值的改变将产生一个 Path_Change 事件。引用FileName时只能返回选定的文件名,只有加上Path属性才能得到完整的文件路径。表8-2文件系统控件的重要属性表8-3文件系统控件的重要事件2.重要事件3.文件系统控件应用实例图8-6所示应用程序的功能是:三个文件系统控件是同步的,即选择驱动器列表框中的驱动器时,在目录列表框中显示当前驱动器下的文件夹,在文件列表框中显示目录列表框中打开的文件夹中的文件。组合框控件用于限制文件列表框显示的文件类型。当单击文件列表框的文件名时,在右下的列表框中显示文件列表框中选定的文件名称。当双击文件列表框的可执行文件名时,将运行双击的文件。(1)界面设计根据要求,在Form1窗体上绘制三个文件系统控件:驱动器列表框控件Drive1、目录列表框控件Dir1和文件列表框控件File1,一个组合框控件Combo1和一个标签控件Label1和一个列表框控件List1。(2)属性设置令La
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。