• 1. 第9章 文件管理 §9.1 公共对话框 §9.2 数据文件 §9.3 文件系统控件 §9.4 文件系统对象 *
    • 2. §9.1 公共对话框 对话框技术在软件中应用的非常广泛,第3章中介绍的消息框MsgBox和输入框InputBox是两种最为简单的对话框。像“打开” 、“另存为” 、“颜色” 、“字体” 、“打印” 、“帮助”等对话框在各类软件中使用频繁。为此,VB中专门提供了一个公用对话框控件,用于实现以上功能。 一、添加“公共对话框”控件 二、使用“公共对话框” 三、公用对话框的应用举例
    • 3. 一、添加“公共对话框”控件    公用对话框是一个外部控件,不在标准工具箱中,使用时需要设计者自己从部件中添加。具体方法为: 打开“部件”对话框 右击“工具箱”,选择“部件” “工程”主菜单选项中选择“部件”2. 选择“MicroSoft Common Dialog Control 6.0”
    • 4. 二、使用“公共对话框”   “公用对话框”控件在程序运行时是一个不可见的控件。在程序代码中要用该控件的有关方法让其显示出指定格式的对话框。其方法有6种: 方   法所显示的对话框ShowOpen显示“打开”对话框ShowSave显示“另存为”对话框ShowColor显示“颜色”对话框ShowFont显示“字体”对话框ShowPrinter显示“打印”对话框ShowHelp激活Windows帮助引擎
    • 5. 1.使用“打开”对话框主要属性: ①FileName属性:设置默认文件名或返回所选文件的路径及名称。 Name=CommonDialog1.FileName ②DialogTitle属性:设置或返回对话框的标题。 CommonDialog1. DialogTitle=”请选择文件” ③InitDir属性:设置或返回对话框访问的初始文件目录。 CommonDialog1. InitDir=”D:\ABC” ④Filter属性:设置文件的过滤条件。 CommonDialog1.Filter = " (*.*)|*.*| (*.txt)|*.txt"CommonDialog1.ShowOpen
    • 6. 1.使用“打开”对话框  该控件除了具有文本框控件的所有功能以外,还具有一些高级功能,如:同一文本框中的内容可以具有不同的颜色、字体、字号等属性,并且可以将文本中的内容直接与文件的读写相联系。 补充:Microsoft RichTextBox Control 6.0控件
    • 7. 2.使用“另存为”对话框 CommonDialog1.ShowSave Private Sub Command1_Click() CD1.ShowSave RTB1.SaveFile CD1.FileName, 1 End Sub
    • 8. 3.使用“颜色”对话框CommonDialog1.ShowColor Color属性:设置初始颜色或返回用户所选定的颜色。   Form1.BackColor=CommonDialog1.Color  Flags属性:设置对话框的外观等。 值含  义&H2显示全部的对话框,包括定义自定义颜色部分。 &H8使对话框显示帮助按钮。
    • 9. 4.使用“字体”对话框CommonDialog1.ShowFont Color属性:记录使用者所选择的字体颜色。 FontBold属性:记录使用者是否选择了粗体字。 FontItalic属性:记录使用者是否选择了斜体字。 FontStrikethru属性:记录使用者是否选择了加删除线。 FontUnderline属性:记录使用者是否选择了加下画线。 FontSize属性:记录使用者所选择的字体大小。 Flags属性: 值含  义&H1使对话框只列出系统支持的屏幕字体。 &H4使对话框显示帮助按钮。 &H100它指定对话框允许删除线,下划线,以及颜色效果。
    • 10. 5.“打印”对话框*CommonDialog1.ShowPrinter Copies属性:使用者所设定的打印份数。   FromPage属性:使用者所设定的开始页码。 ToPage属性:使用者所设定的结束页码。
    • 11. 三、公共对话框的应用举例 用输入框输入一些文字,在标签中显示,用颜色对话框设置文字的前景色和背景色,用字体对话框设置文字的字号及字体。  要求:不能有Bug!!!
    • 12. §9.1 公共对话框  回顾一、添加“公共对话框”控件 “MicroSoft Common Dialog Control 6.0” 二、使用“公共对话框”方   法所显示的对话框ShowOpen显示“打开”对话框ShowSave显示“另存为”对话框ShowColor显示“颜色”对话框ShowFont显示“字体”对话框ShowPrinter显示“打印”对话框ShowHelp激活Windows帮助引擎
    • 13. §9.2 数据文件   数据文件在各种程序设计领域中,都占有极其重要的地位。一般而言,程序执行时用户所输入的数据都是存储在RAM中,一旦程序运行结束或电源中断,存储器中的数据也随之消失!若想永久储存,在程序中必须将RAM中的数据以文件的形式存储到外存储器中。当然,需要时程序也可以从文件中将数据读出。VB中的文件有三种:    一、顺序文件    二、随机文件    三、二进制文件
    • 14. 一、访问顺序文件   顺序文件也就是普通的文本文件,它是将字符的编码按先后顺序一个接一个地存放在文件中,因此占用的磁盘空间很小。   但是,当用户查找一个数据时,必须从文件的开头一个一个地按顺序找,直到找到为止。因此,这种文件的缺点是数据访问的灵活性差。
    • 15. 一、访问顺序文件 1.顺序打开的打开与关闭 ①打开:   Open <文件名> For As <文件号>   如: Open “d:\abc\test.txt” for Output As #1 ②关闭:   Close [文件号列表]③说明: Input用来从文件中读取数据,若文件不存在,则产生一个错误。 Output用来创建一个待写的文件;若文件已存在,则将覆盖。 Append用追加的方式打开文件,若文件不存在,则创建该文件。 文件号:1至511。可用FreeFile函数检测可以使用的文件号。 文件使用完后必须用Close语句关闭,否则将可能丢失数据!  关闭文件时,若没有指明文件号,则关闭所有已打开的文件。
    • 16. 一、访问顺序文件 2.顺序文件的读取操作   文件必须是以Input方式打开的。 ① Line Input# 语句 格式:LineInput #FileNumber,VarName 功能:从指定的顺序文件中读出一行数据给一个字符串变量。 ② Input# 语句 格式:Input #FileNumber,VarList 功能:从指定的顺序文件中读取数据给变量序列。 ③ Input 函数 格式:Input(Length,FileNumber) 功能:从指定文件中读取指定长度的字符串作为函数值返回。 ④ 实例:   读文件的内容读至文本框。
    • 17. 一、访问顺序文件 3.顺序文件的写入操作 文件必须是以Output或Append方式打开的。 ① Print语句   格式:Print #<文件号>,<数据> [{,|;}]   功能:将数据写入指定的文件当中。数值有前后空格。 ② Write语句   格式:Write #<文件号>,<数据>   功能:将数据写入指定的文件当中。字符串有双引号。 ③ 实例:   ●将文本框中所写的内容以文件的形式保存。        ●例9-2:简易文本编辑器    缺陷:退出时或打开别的文件时,对已修改的文件没有任何保护措施!   ●案例程序1:通用电话号码本   ●案例程序2:限时(限制软件使用的时间)   ●案例程序3:电子打铃器
    • 18. 二、访问随机文件   随机文件是可以按任意次序读写的文件,它是以记录为单位进行存储的,每个记录的长度相同,但具有不同的记录号。当写数据时,只要告诉记录号就可以将数据写入文件中的指定位置;而当读取数据时,只要知道记录号就可以立即找到所要的数据,因此这种方法访问数据速度快,但它占用的磁盘空间大。
    • 19. 二、访问随机文件 1. 定义记录类型 Type personinfo ‘姓名、电话、备注等信息的记录类型 Name as String*40 Phone as String*40 Comments as String*100 End Type Dim X As personinfo 2.打开随机文件 Open <文件名> For random As <文件号> Len=<记录长度> 检测记录长度用Len函数:reclen=Len(Who)
    • 20. 二、访问随机文件 3.读取随机文件 Get [#] <文件号> ,[<记录号>],<变量名> ●<记录号> <= 2147483647,即Long类型数据的最大值。 ●<变量名>必须为与文件中数据类型相同的记录类型。 ●若省去<记录号>,则从当前位置读取;但要注意“,”不能省。 4.写入随机文件 Put [#] <文件号> ,[<记录号>],<变量名> 给文件写数据之前,必须先将要写入的内容存入记录类型变量中。 5. 例9-3 ,Page 191
    • 21. 三、访问二进制文件 1. 打开二进制文件 格式:Open file For binary As [#]filenumber 例如:Filenumber=FreeFile Open “d:\vb\sin.exe” For Binary As #Filenumber 2.写入二进制文件 格式:Put [#]<文件号>,[字节数],<变量名> 功能:将变量中的内容写入指定文件中的指定位置。 3.从二进制文件中读取数据 格式:Get [#]<文件号>,[字节数],<变量名> 功能:从指定文件中的指定位置读取数据给指定的变量。  二进制文件是以字节为单位进行访问的,文件打开后可以在任何字节位置进行读写操作,所以二进制文件是最灵活的。
    • 22. 三、访问二进制文件 4. 举例: ●窗体Click之后,将1~5这五个数据以二进制形式写入Btest.dat文件中,随后以同样方式读出。并在消息框中将其显示出来。最后将该文件删除。 ●案例程序4:限次(限制软件使用的次数)
    • 23. §9.2 数据文件  回顾   一、顺序文件    二、随机文件    三、二进制文件
    • 24. §9.3 文件系统控件 VB提供了三个与文件有关的控件,这些控件是制作文件对话框时必不可少的工具。  二、目录列表框:    DirectoryListBox 三、文件列表框:    FileListBox  一、驱动器列表框:    DriveListBox
    • 25. 一、驱动器列表框:DriveListBox 1.重要属性 Drive属性:设定或读取当前驱动器的名称。 代码中设定方法: 驱动器列表框名.Drive = 盘符       Drive1.Drive = " E:" 2.重要事件 Change事件:当前驱动器变更时发生。
    • 26. 二、目录列表框DirectoryListBox 1. 重要属性  Path属性:设定或读取当前目录的完整路径。 代码中设定方法: 目录列表框.Path = 路径        Dir1.Path = "E:\vb " 2. 重要事件 Click事件和Change事件。
    • 27. 三、文件列表框FileListBox 1.重要属性  ①Path属性:设定当前目录。    代码中设定方法:文件列表框.Path = 路径  ②FileName属性:传回所选定的文件名称。  ③Pattern属性:设定文件名的过滤方式,即文件通配符。 代码中设定方法:文件列表框.Pattern = 通配符 2.案例程序    案例程序5:简易音乐播放器    案例程序6:我的点歌台    案例程序7:图片自动连续显示    案例程序8:成批更改文件名    案例程序9:打印保存目录名称
    • 28. 补充:文件操作类语句及函数 1.FreeFile函数   得到一个在程序中没有使用的文件号。 2.Eof函数   格式:Eof(filenumber)   功能:检测文件是否结束,结束时返回True。 3.ChDir语句   格式:ChDir path   功能:改变当前目录。 4.ChDrive语句   格式:ChDrive Drive   功能:改变当前盘。 5.MkDir语句   格式:MkDir path   功能:建立子目录。 6.RmDir语句   格式:RmDir path   功能:删除子目录。
    • 29. 7.FileCopy语句   格式:FileCopy 源文件名,目标文件名   功能:复制文件。 8.Name语句   格式:Name 旧名称 As 新名称   功能:对文件或目录进行更名。 9.Kill语句   格式:Kill Pathname   功能:删除文件。 10. SetAttr语句   格式:SetAttr 文件名,Attributes   功能:设置文件属性。   vbNormal、VbReadOnly、vbHidden、vbSystem补充:文件操作类语句及函数
    • 30. 11.CurDir函数 格式:CurDir [Drive] 功能:返回指定盘的当前路径。 12.FileLen函数 格式:FileLen(pathname) 功能:返回指定文件的长度。 13.Shell函数 格式:Shell(pathname,[windowstyle])   功能:调用指定的应用程序。   举例:调用写字板并打开指定的文件   Private Sub Command1_Click()    Shell “wordpad e:\1.txt”,1   End Sub补充:文件操作类语句及函数
    • 31. §9.3 文件系统控件  回顾   一、驱动器列表框DriveListBox 二、目录列表框DirectoryListBox 三、文件列表框FileListBox    四、文件操作类语句及函数
    • 32. 第9章 文件管理  回顾 §9.1 公共对话框 §9.2 数据文件 §9.3 文件系统控件 §9.4 文件系统对象 *
    • 33. 作业:  1.Page  208:4  2.Page  208:5  3.Page  208:6  4.Page  208:7  5.Page  208:8