1 / 40

第八章 文 件

第八章 文 件. 文件的概念、种类及其结构 文件操作的命令与函数 文件的操作:打开、读/写、关闭; 文件系统控件:驱动器列表框 、 目录列表框 、 文件列表框. 文件系统概述. 一、文件及其结构 文件:存储在外部介质上数据的集合。 要求操作系统中的文件系统能提供用户按名存取方式 在操作系统中有两种文件: 字符流无结构文件和记录式有结构文件 磁盘文件是由数据记录组成。记录是计算机处理数据的基本单位,它由一组具有共同属性相互关联的数据项组成。. 二、文件分类. 根据访问文件的方式将文件分成3类:

eman
Download Presentation

第八章 文 件

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第八章文 件 文件的概念、种类及其结构 文件操作的命令与函数 文件的操作:打开、读/写、关闭; 文件系统控件:驱动器列表框、目录列表框、文件列表框

  2. 文件系统概述 一、文件及其结构 文件:存储在外部介质上数据的集合。 要求操作系统中的文件系统能提供用户按名存取方式 在操作系统中有两种文件: 字符流无结构文件和记录式有结构文件 磁盘文件是由数据记录组成。记录是计算机处理数据的基本单位,它由一组具有共同属性相互关联的数据项组成。

  3. 二、文件分类 根据访问文件的方式将文件分成3类: 顺序文件、 随机文件、 二进制文件 1.顺序文件 顺序文件(Sequential File)是普通的文本文件。顺序文件中的记录按顺序一个接一个地排列。读写文件存取记录时,都必须按记录顺序逐个进行。一行一条记录(一项数据),记录可长可短,以“换行”字符为分隔符号。 结构简单; 但不能灵活存取,适用于不经常修改的文件

  4. 2.随机文件 随机文件(Random Access File)是可以按任意次序读写的文件,其中每个记录的长度必须相同。在这种文件结构中,每个记录都有其唯一的一个记录号,所以在读取数据时,只要知道记录号,便可以直接读取记录。 存取速度快,易更新;但占用空间大,设计程序较复杂

  5. 3.二进制文件 二进制文件(Binaryfile)是字节的集合,直接把二进制码存放在文件中。 除了没有数据类型或者记录长度的含义以外,它与随机访问很相似。 二进制访问模式是以字节数来定位数据,在程序中可以按任何方式组织和访问数据,对文件中各字节数据直接进行存取。 灵活性很大; 相对的, 程序更复杂。

  6. 常用的文件操作语句和函数 直接作用命令 1. 改变当前驱动器 格式:ChDrive drive 功能:改变当前系统驱动器。 说明:如果drive为空,则当前驱动器将不会改变; 如果drive中有多个字符,则ChDrive只会使用 首字母。 例如:ChDrive "D" 及ChDrive "D:\" ChDrive “Dasd” 都是将当前驱动器设为D盘。

  7. 2. 改变当前目录 格式:ChDir path 功能:改变当前目录。 例如:ChDir "D:\TMP" 说明:ChDir语句改变缺省目录位置,但不会改变缺省驱动器位置。 例如,如果缺省的驱动器是C,则上面的语句将会改变驱动器D上的缺省目录,但是C仍然是缺省的驱动器。

  8. 3. 删除文件(Kill语句) 格式:Kill pathname 功能:删除文件。 说明:pathname中可以使用统配符“*”和“?”。 例如:Kill "*.TXT " Kill "C:\Mydir\Abc.dat"

  9. 4. 建立目录 格式:MkDir path 功能:创建一个新的目录。 例如: MkDir "D:\Mydir\ABC"

  10. 5. 删除目录 格式:RmDir path 功能:删除一个存在的目录。 说明:只能删除空目录。 例如: RmDir "D:\Mydir\ABC“ 说明: RmDir只能删除空子目录,如果想要使用RmDir来删除一个含有文件的目录或文件夹,则会发生错误。

  11. 6. 文件的更名 格式:Name oldpathname As newpathname 功能:重新命名一个文件或目录。 例: Name "D:\Mydir\Test.doc" As "A:\MyTest.doc" 说明: (1) Name具有移动文件的功能。 (2) 不能使用统配符“*”和“?”,不能对一个已打开的文件上使用Name语句。

  12. 内部常数 数值 描 述 VbNormal 0 常规(缺省值) VbReadOnly 1 只读。 VbHidden 2 隐藏。 VbSystem 4 系统文件 VbArchive 32 上次备份以后,文件已经改变 7. 设置文件属性——SetAttr 语句。 格式:SetAttr FileName, attributes 其参数含义: FileName:必要参数。一个文件名的字符串表达式。 Attributes:必要参数。常数或数值表达式,其总和用来表示文件的属性。Attributes参数设置下表:

  13. 8. 拷贝文件 格式:FileCopy source , destination 功能:复制一个文件。 例如: FileCopy"D:\Mydir\Test.doc“, A:\MyTest.doc" 说明: FileCopy语句不能复制一个已打开的文件。

  14. 文件操作函数 1.FreeFile函数 : 格式: FreeFile[<区间号>] 其中:<区间号>等于0或1。省略时,返回1~255之间的文件号:<区间号>等于1时,则返回256~511之间的文件号。 说明: 使用FreeFile函数可以把一个未使用的文件号赋给指定变量。当用Open语句打开文件时,使用代表文件号的变量,可以不必考虑具体的文件号。当打开的文件较多,特别在一些通用过程中访问文件时,可以避免打开正在使用的文件号。

  15. 2.Loc函数 格式: Loc(文件号) 说明: Loc函数将返回在一个打开文件中读写的记录号;对于二进制文件,它将返回最近读写的一个字节的位置。

  16. 3.Lof 函数 格式: Lof(文件号) 说明:LOF函数将返回某个已打开文件的字节数。 例如,LOF(1)返回#1文件的长度,如果返回0值,则表示该文件是一个空文件。

  17. 4. Eof 函数 格式: Eof(文件号) 说明:Eof 函数将返回一个表示文件指针是否到达文件末尾的标志。如果到了文件末尾,Eof 函数返回TRUE(-1),否则返回FALSE(0)。 在应用中,一般使用以下格式来检测是否到达文件尾: Do While Not EOF(文件号) Loop FileLen(文件名)

  18. 5. FileDateTime函数 格式:FileDateTime(FileName) 功能:返回一个Variant (Date),此值为一个文件被创建或最后修改后的日期和时间。

  19. 内部常数 数值 描 述 6.获得文件属性 格式:GetAttr(FileName) 功能:返回代表一个文件、目录、或文件夹的属性的Integer数据。GetAttr返回的值及代表的含义下表 : VbNormal 0 常规 vbReadOnly 1 只读 VbHidden 2 隐藏 VbSystem 4 系统文件 VbDirectory 16 目录或文件夹 VbArchive 32 上次备份以后,文件已经改变 Vbalias 64 指定的文件名是别名

  20. 获得当前目录 • 格式:CurDir[(drive)] • 功能:利用CurDir函数可以确定指定驱动器的当前目录。 • 说明:可选的Drive参数是一个字符串表达式,它指定一个存在的驱动器。如果没有指定驱动器,或Drive是零长度字符串(“”),则CurDir会返回当前驱动器的路径。 • 例如:str=CurDir(“E:”) • 获得E盘当前目录路径,并赋值给变量Str

  21. 8.FileLen函数 格式:FileLen(FileName) 功能:返回一个Long,代表一个文件的长度,单位是字节。

  22. 关闭文件 打开文件 读出或写入 文件的操作 在程序中对文件的操作,通常按3个步骤进行:

  23. 顺序文件的打开与关闭 1.打开顺序文件——Open 语句 格式:Open FileName For [Input|Output| Append] [Lock]As filenumber [Len = Buffersize] 例如:OPEN “C:\TEMP\A.TXT ” FOR Input AS #1 OPEN “C:\TEMP\B.TXT ” FOR Output AS #2 OPEN “C:\TEMP\C.TXT ” FOR Append AS #3 dim filenumber filenumber=Freefile Open “c:\a.dat” for output as # filenumber

  24. 2. 关闭文件——Close 语句 格式: Close [filenumberlist] 其中: filenumberlist:可选项,为文件号列表, 如:#1, #2, #3, 例如: Close #1,#2,#3 如果省略,则将关闭Open语句打开的所有活动文件。

  25. 向文件写入内容使用 Print # 语句或Write#语句,在程序是数据输出。 1.Print语句 格式: PRINT #<文件号>,[<输出列表>] 说明:文件号为以写方式打开文件的文件号; 输出列表为用分号或逗号分隔的变量、常量、空格和定位函数序列。 顺序文件的写操作 2.Write命令 格式: Write #<文件号>,[<输出列表>] Write语句采用紧凑格式。数据项之间插入“,”,并给字符数据加上双引号。

  26. print Write 例1. Print与Write语句输出数据结果比较。 Private Sub Form_Click() Dim Str As String, Anum As Integer Open "D:\Myfile.dat" For Output As #1 Str = "ABCDEFG" Anum = 12345 Print #1, Str, Anum Write #1, Str, Anum Close #1 End Sub

  27. 例2. 编程把一个文本框中的内容,以文件形式存入磁盘。假定文本框的名称为Mytxt,文件名为Myfile.dat。 方法1: 把整个文本框的内容一次性地写入文件。 Open "Myfile.dat" For Output As #1 Print #1, Mytxt.Text Close #1

  28. 方法2:把整个文本框的内容一个字符一个字符地写入文件。方法2:把整个文本框的内容一个字符一个字符地写入文件。 Open "Myfile.dat" For Output As #1 For i=1 To len(Mytxt.Text) Print #1,Mid(Mytxt.Text,i,1); Next i Close #1

  29. 顺序文件读操作 从现存文件中读入数据,应以顺序Input方式打开该文件。然后使用 Input# 语句、Line Input# 语句和Input( )函数读入到程序变量中。 格式: INPUT #文件号,变量列表 把读出的每个数据项分别存放到所对应的变量。 格式: LINE INPUT #文件号,字符串变量 读一行到变量中,主要用来读取文本文件。 格式: INPUT$(读取字符数, #文件号) 读取指定的数量的字符,作为函数的返回值。

  30. 方法1:一个个字符读 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 例3. 编程将一文本文件的内容读到文本框。 假定文本框名称为txtTest,文件名为MYFILE.TXT。 可以通过下面三种方法来实现。

  31. 方法2:一行一行读 txtTest.Text = "" Open "MYFILE.TXT" For Input As #1 Do While Not EOF(1) Line Input #1, InputData txtTest.Text=txtTest.Text+InputData+vbCrLf Loop Close #1 回车换行

  32. 方法3:一次性读 txtTest.Text = "" Open "MYFILE.TXT" For Input As #1 txtTest.Text = Input( LOF(1),1) Close #1

  33. 例4. 利用文件系统控件、组合框、文本框,制作一个文件浏览器。 要求:组合框限定文件列表框中显示文件的类型,如选定“*.Txt”文件。当在文件列表框选定欲显示的文件时,在文本框显示出该文件的内容。 程序运行效果如图

  34. 随机文件(了解) 随机文件的打开与关闭 1.打开随机文件 格式:OPEN FileName FOR Random [Access <Mode>][Lock] As filenumber [Len = reclength] 用OPEN命令以Random模式打开随机文件,同时指出记录的长度。文件打开后,可同时进行读写操作。 例如:Open "d:\abc.dat" For Random Access Read As #1 Len = 20

  35. 2.关闭随机文件:随机文件的关闭与关闭顺序文件相同。2.关闭随机文件:随机文件的关闭与关闭顺序文件相同。 写随机文件 Put [#]文件号,[记录号],变量名 将一个记录变量的内容写到指定的记录位置处。 忽略记录号,则表示在当前记录后的位置插入一条记录。 读随机文件 Get [#]文件号,[记录号],变量名 忽略记录号,则读出当前记录后的那一条记录。

  36. 二进制文件 1. 打开文件 Open "文件名" For Binary As #文件号 2. 写操作 Put [#]文件号,[位置],变量名 写入长度等于变量长度的数据。

  37. 3. 读操作 GET [#]文件号,[位置],变量名 从指定位置开始读出长度等于变量长度的数据存入变量中,数据读出后移动变量长度位置,如果忽略位置,则表示从文件指针所指的位置开始读出数据,数据读出后移动变量长度位置。

  38. 驱动器列表框 文件 列表框 目录 列表框 9.2 文件系统控件 VB提供了3种可直接浏览系统目录结构和文件的控件: 驱动器列表框、目录列表框、文件列表框。

  39. 9.2.1 驱动器列表框(DriveListBox) 驱动器列表框控件,通常只显示当前驱动器名称,单击向下箭头,就会下拉出当前系统拥有的所有磁盘驱动器,供用户选择。 1.重要属性 Drive属性是驱动器列表框控件最重要和常用的属性,该属性在设计时不可用。 使用格式: 对象.Drive [= <字符串表达式>] 例如: Drive1.drive=“D:”

  40. 2.重要事件——Change事件 在程序运行时,当选择一个新的驱动器或通过代码改变Drive属性的设置时都会触发驱动器列表框的change事件发生。 9.2.2 目录列表框(DirListBox) 目录列表框(DirListBox) 控件用来当前驱动器目录结构及当前目录下的所有子目录。供用户选择其中一个目录为当前目录。

More Related