68
VB程程程程程程程程程程 1 8 8 第第第 第第 第第第 第第 8.1 8.1 第第第第第 第第第第第 8.2 8.2 第第第第 第第第第 8.3 8.3 第第第 第第 第第第 第第 8.4 File System Object 8.4 File System Object 第第 第第 第第 第第

第 8 章 文件系统管理

Embed Size (px)

DESCRIPTION

第 8 章 文件系统管理. 8.1 通用对话框 8.2 文件处理 8.3 文件系统控件 8.4 File System Object 模型简介. 8.1 通用对话框. 在本节中主要研究 Windows 标准对话框,它为用户提供了功能强大的、专业的交互式对话框。 微软创建的标准对话框为普通用户提供了与所有 Windows 程序相同的界面。. 8.1.1 CommonDialog 控件. - PowerPoint PPT Presentation

Citation preview

Page 1: 第 8 章  文件系统管理

VB程序设计与数据库应用1

第第 88 章 文件系统管理 章 文件系统管理

8.1 8.1 通用对话框 通用对话框

8.2 8.2 文件处理 文件处理

8.3 8.3 文件系统控件 文件系统控件

8.4 File System Object8.4 File System Object 模型简介 模型简介

Page 2: 第 8 章  文件系统管理

VB程序设计与数据库应用2

8.1 8.1 通用对话框 通用对话框

在本节中主要研究在本节中主要研究 WindowsWindows 标准对话框,它标准对话框,它

为用户提供了功能强大的、专业的交互式对话为用户提供了功能强大的、专业的交互式对话

框。框。

微软创建的标准对话框为普通用户提供了与所微软创建的标准对话框为普通用户提供了与所

有有 WindowsWindows 程序相同的界面。程序相同的界面。

Page 3: 第 8 章  文件系统管理

VB程序设计与数据库应用3

8.1.1 CommonDialog8.1.1 CommonDialog 控件 控件

11 .. CommonDialog CommonDialog 控件提供诸如打开和保存文件、设置控件提供诸如打开和保存文件、设置打印选项、选择颜色和字体等操作的一组标准对话框。打印选项、选择颜色和字体等操作的一组标准对话框。运行 运行 Windows Windows 帮助引擎时,控件还能够显示帮助。 帮助引擎时,控件还能够显示帮助。

22 .. CommonDialog CommonDialog 控件可以显示如下常用对话框:“打控件可以显示如下常用对话框:“打开”、“另存为”、“颜色”、“字体”、“打印”。开”、“另存为”、“颜色”、“字体”、“打印”。

Page 4: 第 8 章  文件系统管理

VB程序设计与数据库应用4

8.1.1 CommonDialog8.1.1 CommonDialog 控件控件 3. 3. 一个字体对话框 一个字体对话框 ::

Page 5: 第 8 章  文件系统管理

VB程序设计与数据库应用5

8.1.2 8.1.2 使用通用对话框 使用通用对话框 11 .添加通用对话框控件.添加通用对话框控件

通用对话框必须用通用对话框必须用 CommonDialogCommonDialog 控件来建立,控件来建立,若未添加 若未添加 CommonDialog CommonDialog 控件,则应选定【工控件,则应选定【工程】→【部件】命令,将控件添加到工具箱中 。程】→【部件】命令,将控件添加到工具箱中 。

Page 6: 第 8 章  文件系统管理

VB程序设计与数据库应用6

8.1.2 8.1.2 使用通用对话框使用通用对话框 22 .. CommonDialogCommonDialog 控件有如下的方法:控件有如下的方法:

ShowOpenShowOpen 方法方法 显示“打开”对话框。显示“打开”对话框。

ShowSaveShowSave 方法方法 显示“另存为”对话框。显示“另存为”对话框。

ShowColorShowColor 方法方法 显示“颜色”对话框。显示“颜色”对话框。

ShowFontShowFont 方法方法 显示“字体”对话框。显示“字体”对话框。

ShowPrinterShowPrinter 方法方法 显示“打印”对话框。显示“打印”对话框。

ShowHelpShowHelp 方法 显示方法 显示 WindowsWindows 帮助对话框。帮助对话框。

Page 7: 第 8 章  文件系统管理

VB程序设计与数据库应用7

8.1.2 8.1.2 使用通用对话框使用通用对话框3. 3. 调用这些方法的一般格式:调用这些方法的一般格式:

控件名控件名 .. 方法方法

例如:例如: CommonDialogl.ShowSaveCommonDialogl.ShowSave

显示“另存为”对话框显示“另存为”对话框

CommonDialog1.ShowOpenCommonDialog1.ShowOpen

显示“打开”对话框显示“打开”对话框

Page 8: 第 8 章  文件系统管理

VB程序设计与数据库应用8

8.1.3 8.1.3 通用对话框应用实例 通用对话框应用实例 程序运行结果程序运行结果 ::

Page 9: 第 8 章  文件系统管理

VB程序设计与数据库应用9

8.1.3 8.1.3 通用对话框应用实例通用对话框应用实例1. 1. 创建应用程序创建应用程序

添加控件、菜单添加控件、菜单

Page 10: 第 8 章  文件系统管理

VB程序设计与数据库应用10

8.1.3 8.1.3 通用对话框应用实例通用对话框应用实例2. 2. 添加通用对话框(添加通用对话框( CommonDialogCommonDialog )控件)控件

Page 11: 第 8 章  文件系统管理

VB程序设计与数据库应用11

8.1.3 8.1.3 通用对话框应用实例通用对话框应用实例3. 3. 添加程序代码添加程序代码 显示“颜色”对话框的方法显示“颜色”对话框的方法 : : 在在 mnuColormnuColor 的的 ClickClick 事件处理中事件处理中

键入下列代码:键入下列代码: Private Sub mnuColor_Click()Private Sub mnuColor_Click()

On Error GoTo colorerrOn Error GoTo colorerr

CommonDialog1.ShowColorCommonDialog1.ShowColor

Text1.BackColor = CommonDialog1.ColorText1.BackColor = CommonDialog1.Color

Exit SubExit Sub

colorerr:colorerr:

MsgBox "MsgBox " 您放弃了选择对话框您放弃了选择对话框 !"!"

Exit SubExit Sub

End Sub End Sub

Page 12: 第 8 章  文件系统管理

VB程序设计与数据库应用12

8.1.3 8.1.3 通用对话框应用实例通用对话框应用实例 显示“字体”对话框的方法显示“字体”对话框的方法 : : 在在 mnuFontmnuFont 的的 ClickClick 事件处理中键入下列代事件处理中键入下列代

码: 码:

Private Sub mnuFont_Click() Private Sub mnuFont_Click()

On Error GoTo fonterrOn Error GoTo fonterr

CommonDialog1.Flags = cdlCFEffects Or cdlCFBothCommonDialog1.Flags = cdlCFEffects Or cdlCFBoth

CommonDialog1.ShowFontCommonDialog1.ShowFont

Text1.FontName = CommonDialog1.FontNameText1.FontName = CommonDialog1.FontName

Text1.FontSize = CommonDialog1.FontSizeText1.FontSize = CommonDialog1.FontSize

Text1.FontBold = CommonDialog1.FontBoldText1.FontBold = CommonDialog1.FontBold

Text1.FontItalic = CommonDialog1.FontItalicText1.FontItalic = CommonDialog1.FontItalic

Text1.FontUnderline = CommonDialog1.FontUnderlineText1.FontUnderline = CommonDialog1.FontUnderline

Text1.FontStrikethru = CommonDialog1.FontStrikethruText1.FontStrikethru = CommonDialog1.FontStrikethru

Text1.ForeColor = CommonDialog1.ColorText1.ForeColor = CommonDialog1.Color

Exit SubExit Sub

Page 13: 第 8 章  文件系统管理

VB程序设计与数据库应用13

8.1.3 8.1.3 通用对话框应用实例通用对话框应用实例 fonterr:fonterr:

MsgBox "MsgBox " 您放弃了选择对话框您放弃了选择对话框 !"!"

Exit SubExit Sub

End SubEnd Sub

Page 14: 第 8 章  文件系统管理

VB程序设计与数据库应用14

8.1.3 8.1.3 通用对话框应用实例通用对话框应用实例 显示“打开”对话框的方法显示“打开”对话框的方法 : : 在在 mnuOpenmnuOpen 的“的“ Click”Click” 事件处理中键入下列代事件处理中键入下列代

码: 码:

Private Sub mnuOpen_Click()Private Sub mnuOpen_Click()

On Error GoTo openerrOn Error GoTo openerr

CommonDialog1.Filter = _CommonDialog1.Filter = _

"all files(*.*)|*.*|textfiles(*.txt)|*.txt| batch files(*.bat)|*.bat""all files(*.*)|*.*|textfiles(*.txt)|*.txt| batch files(*.bat)|*.bat"

CommonDialog1.FilterIndex = 2CommonDialog1.FilterIndex = 2

CommonDialog1.ShowOpenCommonDialog1.ShowOpen

MsgBox "MsgBox " 您选择的文件是您选择的文件是 :" + CommonDialog1.FileName:" + CommonDialog1.FileName

Exit SubExit Sub

openerr:openerr:

MsgBox "MsgBox " 您放弃了选择对话框您放弃了选择对话框 !"!"

Exit SubExit Sub

End Sub End Sub

Page 15: 第 8 章  文件系统管理

VB程序设计与数据库应用15

8.1.3 8.1.3 通用对话框应用实例通用对话框应用实例 mnuExitmnuExit 的的 ClickClick 事件处理中键入下列代码: 事件处理中键入下列代码:

Private Sub mnuExit_Click()Private Sub mnuExit_Click()

Unload Form1Unload Form1

End Sub End Sub

44 .运行应用程序 .运行应用程序

注:代码见:注:代码见: // 第八章第八章 // 例题例题 /prjexp8_1.prj/prjexp8_1.prj

Page 16: 第 8 章  文件系统管理

VB程序设计与数据库应用16

8.1.3 8.1.3 通用对话框应用实例通用对话框应用实例 颜色对话框 颜色对话框

Page 17: 第 8 章  文件系统管理

VB程序设计与数据库应用17

8.1.3 8.1.3 通用对话框应用实例通用对话框应用实例 字体对话框 字体对话框

Page 18: 第 8 章  文件系统管理

VB程序设计与数据库应用18

8.1.3 8.1.3 通用对话框应用实例通用对话框应用实例 打开对话框 打开对话框

Page 19: 第 8 章  文件系统管理

VB程序设计与数据库应用19

8.1.3 8.1.3 通用对话框应用实例通用对话框应用实例 选中文件名称消息框 选中文件名称消息框

Page 20: 第 8 章  文件系统管理

VB程序设计与数据库应用20

8.2 8.2 文件处理 文件处理 根据不同的分类标准,文件可分为不同根据不同的分类标准,文件可分为不同

的类型。 的类型。

Page 21: 第 8 章  文件系统管理

VB程序设计与数据库应用21

8.2.1 8.2.1 文件的类型文件的类型11 .按存取方式分类 .按存取方式分类

可分为顺序文件和随机文件 可分为顺序文件和随机文件 顺序存取只能依先后次序存取文件中的数据。顺序存取只能依先后次序存取文件中的数据。 随机文件可以直接存取文件中指定的数据。随机文件可以直接存取文件中指定的数据。

22 .按性质分类 .按性质分类

可分为程序文件和数据文件 可分为程序文件和数据文件

33 .按存储格式分类 .按存储格式分类

可分为可分为 ASCIIASCII 码文件和二进制文件 码文件和二进制文件

Page 22: 第 8 章  文件系统管理

VB程序设计与数据库应用22

8.2.2 8.2.2 顺序文件 顺序文件 11 .顺序文件的打开和关闭 .顺序文件的打开和关闭

(( 11 )打开文件 )打开文件 Open pathname For [Input | Output | Append] As filenumber [Len = buffersize] Open pathname For [Input | Output | Append] As filenumber [Len = buffersize]

例如:要建立一个新的顺序文件,名称为例如:要建立一个新的顺序文件,名称为 DataFilelDataFilel ::  Open "DataFilel" For Output As #1 Open "DataFilel" For Output As #1

Page 23: 第 8 章  文件系统管理

VB程序设计与数据库应用23

8.2.2 8.2.2 顺序文件 顺序文件 (( 22 )关闭文件 )关闭文件

Close [[#]filenumber][,[#]filenumber]… Close [[#]filenumber][,[#]filenumber]…

例如:例如: Close#1Close#1 ,, #2#2

Close Close

Page 24: 第 8 章  文件系统管理

VB程序设计与数据库应用24

8.2.2 8.2.2 顺序文件 顺序文件 22 .顺序文件的读和写 .顺序文件的读和写 (( 11 )顺序文件的写语句 )顺序文件的写语句

① ① Print #Print # 语句 语句

Print #filenumber,expressionlistPrint #filenumber,expressionlist

Page 25: 第 8 章  文件系统管理

VB程序设计与数据库应用25

8.2.2 8.2.2 顺序文件 顺序文件

例:当用户单击【写入文件】按钮时,用例:当用户单击【写入文件】按钮时,用 Print #Print # 来将文来将文本框中的文本存到本框中的文本存到 file.txtfile.txt 文件中。文件中。

Private Sub Command1_Click()Private Sub Command1_Click()

Open "D:\file.txt" For Output As #1Open "D:\file.txt" For Output As #1

Print #1, Text1.TextPrint #1, Text1.Text

Close #1Close #1

End Sub End Sub

注:注:代码见:代码见: // 第八章第八章 // 例题例题 /prjexp8_2.prj/prjexp8_2.prj

Page 26: 第 8 章  文件系统管理

VB程序设计与数据库应用26

8.2.2 8.2.2 顺序文件 顺序文件 ② ②Write #Write # 语句: 语句:

Write #filenumber,expressionlist Write #filenumber,expressionlist

例:单击【写入文件】按钮,打开一个名为例:单击【写入文件】按钮,打开一个名为 data.datdata.dat 的文件,的文件,并将两个数字写到该文件中,这两个数字是用户已输入到并将两个数字写到该文件中,这两个数字是用户已输入到

TextlTextl 和和 Text2Text2 两个文本框中的。两个文本框中的。 Private Sub Command1_Click()Private Sub Command1_Click()

Open "D:\data.dat" For Output As #1Open "D:\data.dat" For Output As #1

Write #1, Val(Textl.Text),Val(Text2.Text)Write #1, Val(Textl.Text),Val(Text2.Text)

Close #1Close #1

End SubEnd Sub

注:代码见:注:代码见: // 第八章第八章 // 例题例题 /prjexp8_3.prj/prjexp8_3.prj

Page 27: 第 8 章  文件系统管理

VB程序设计与数据库应用27

8.2.2 8.2.2 顺序文件 顺序文件 (( 22 )顺序文件的读语句 )顺序文件的读语句

① ① Input #Input # 语句语句 : : 

Input #filenumber,expressionlist Input #filenumber,expressionlist

Page 28: 第 8 章  文件系统管理

VB程序设计与数据库应用28

8.2.2 8.2.2 顺序文件 顺序文件 例: 单击【读取文件】按钮,用例: 单击【读取文件】按钮,用 Input #Input # 方法读回文件方法读回文件 data.datdata.dat 中的中的

那些整数,把它们显示在文本框中。那些整数,把它们显示在文本框中。

Private Sub Command1_Click()Private Sub Command1_Click()

Dim str1, str2 As StringDim str1, str2 As String

Open "D:\data.dat" For Input As #1Open "D:\data.dat" For Input As #1

Input #1, str1, str2Input #1, str1, str2

Text1.Text = str1Text1.Text = str1

Text2.Text = str2Text2.Text = str2

Close #1Close #1

End Sub End Sub

注:代码见:注:代码见: // 第八章第八章 // 例题例题 /prjexp8_4.prj/prjexp8_4.prj

Page 29: 第 8 章  文件系统管理

VB程序设计与数据库应用29

8.2.2 8.2.2 顺序文件 顺序文件

② ② Line Input #Line Input # 语句:语句:

Line Input #filenumber,string Line Input #filenumber,string

Page 30: 第 8 章  文件系统管理

VB程序设计与数据库应用30

8.2.2 8.2.2 顺序文件顺序文件 例:当用户单击【读取文件】按钮时,用例:当用户单击【读取文件】按钮时,用 Line Input #Line Input #

在文件在文件 file.txtfile.txt 中逐行读并在文本框中显示出来。中逐行读并在文本框中显示出来。Private Sub Command1_Click()Private Sub Command1_Click() Dim NewLine As StringDim NewLine As String Open "D:\file.txt" For Input As #1Open "D:\file.txt" For Input As #1 Do Until EOF(1)Do Until EOF(1) Line Input #1, NewLineLine Input #1, NewLine Text1.Text = Text1.Text + NewLine + vbCrLfText1.Text = Text1.Text + NewLine + vbCrLf LoopLoop

End SubEnd Sub 注:代码见:注:代码见: // 第八章第八章 // 例题例题 /prjexp8_5.prj/prjexp8_5.prj

Page 31: 第 8 章  文件系统管理

VB程序设计与数据库应用31

8.2.2 8.2.2 顺序文件 顺序文件

③ ③ Input$Input$ 函数:函数:

  Input$(numberbytesInput$(numberbytes ,, #filenumber) #filenumber)

Page 32: 第 8 章  文件系统管理

VB程序设计与数据库应用32

8.2.2 8.2.2 顺序文件 顺序文件

33 .顺序文件应用实例.顺序文件应用实例

例:例:建立数据文件,通过输入框输入数据,并将数据存入文件建立数据文件,通过输入框输入数据,并将数据存入文件 DataFiDataFi

le.txtle.txt 中,然后在窗体上显示出来中,然后在窗体上显示出来

Option ExplicitOption Explicit

Private Sub Form_Click()Private Sub Form_Click()

'' 输入数据输入数据

Open "D:\DataFile.txt" For Output As #1Open "D:\DataFile.txt" For Output As #1

Dim j As IntegerDim j As Integer

Dim x As Integer, y As Integer, z As IntegerDim x As Integer, y As Integer, z As Integer

Page 33: 第 8 章  文件系统管理

VB程序设计与数据库应用33

8.2.2 8.2.2 顺序文件 顺序文件 For j = 1 To 3For j = 1 To 3

x = InputBox("x = InputBox(" 请输入请输入 xx 的值的值 ")")

y = InputBox("y = InputBox(" 请输入请输入 yy 的值的值 ")")

z = InputBox("z = InputBox(" 请输入请输入 zz 的值的值 ")")

Print #1, x, y, zPrint #1, x, y, z

Next jNext j

Close #1 Close #1

Page 34: 第 8 章  文件系统管理

VB程序设计与数据库应用34

8.2.2 8.2.2 顺序文件 顺序文件 '' 读取数据读取数据

Open "D:\DataFile.txt" For Input As #1Open "D:\DataFile.txt" For Input As #1

For j = 1 To 3For j = 1 To 3

Input #1, x, y, zInput #1, x, y, z

Print x, y, zPrint x, y, z

Next jNext j

Close #1Close #1

End Sub End Sub

注:代码见:注:代码见: // 第八章第八章 // 例题例题 /prjexp8_6.prj/prjexp8_6.prj

Page 35: 第 8 章  文件系统管理

VB程序设计与数据库应用35

8.2.2 8.2.2 顺序文件 顺序文件 运行结果 :运行结果 :

Page 36: 第 8 章  文件系统管理

VB程序设计与数据库应用36

8.2.2 8.2.2 顺序文件 顺序文件 例:例:建立数据文件,通过输入框输入关于学生信息的多条数据,包括学号、建立数据文件,通过输入框输入关于学生信息的多条数据,包括学号、

姓名、性别和成绩。并将数据存入文件姓名、性别和成绩。并将数据存入文件 DataFile1.txtDataFile1.txt 中。用中。用 Input$Input$ 函函数来一次读文件中一个字符,并将它显示在立即窗口。数来一次读文件中一个字符,并将它显示在立即窗口。

Private Sub Form_Click()Private Sub Form_Click()

Dim MyCharDim MyChar

'' 输入数据输入数据

Open "D:\DataFile1.txt" For Output As #1Open "D:\DataFile1.txt" For Output As #1

Dim j As IntegerDim j As Integer

Dim id As String, name As String, sex As String, score As Single Dim id As String, name As String, sex As String, score As Single

Page 37: 第 8 章  文件系统管理

VB程序设计与数据库应用37

8.2.2 8.2.2 顺序文件 顺序文件 For j = 1 To 3For j = 1 To 3

id = InputBox("id = InputBox(" 请输入学号请输入学号 :"):")

name = InputBox("name = InputBox(" 请输入姓名请输入姓名 :"):")

sex = InputBox("sex = InputBox(" 请输入性别请输入性别 :"):")

score = InputBox("score = InputBox(" 请输入成绩请输入成绩 :"):")

Print #1, id, name, sex, scorePrint #1, id, name, sex, score

Next jNext j

Close #1 Close #1

Page 38: 第 8 章  文件系统管理

VB程序设计与数据库应用38

8.2.2 8.2.2 顺序文件 顺序文件 '' 读取数据读取数据

Open "D:\DataFile1.txt" For Input As #1Open "D:\DataFile1.txt" For Input As #1

Do While Not EOF(1)Do While Not EOF(1)

MyChar = Input$(1, #1)MyChar = Input$(1, #1)

Debug.Print MyCharDebug.Print MyChar

LoopLoop

Close #1Close #1

End Sub End Sub

注:代码见:注:代码见: // 第八章第八章 // 例题例题 /prjexp8_7.prj/prjexp8_7.prj

Page 39: 第 8 章  文件系统管理

VB程序设计与数据库应用39

8.2.2 8.2.2 顺序文件 顺序文件 运行结果 :运行结果 :

Page 40: 第 8 章  文件系统管理

VB程序设计与数据库应用40

8.2.3 8.2.3 随机文件 随机文件

11 .随机文件的打开和关闭.随机文件的打开和关闭

(( 11 )定义记录类型)定义记录类型

Type PersonType Person

ID As IntegerID As Integer

Name As String * 20Name As String * 20

MonthlySalary As CurrencyMonthlySalary As Currency

LastReviewDate As LongLastReviewDate As Long

Title As String * 15Title As String * 15

ReviewComments As String * 150ReviewComments As String * 150

End Type End Type

Page 41: 第 8 章  文件系统管理

VB程序设计与数据库应用41

8.2.3 8.2.3 随机文件 随机文件

(( 22 )打开随机访问文件 )打开随机访问文件

Open pathname [For Random] As filenumber Len = reclengthOpen pathname [For Random] As filenumber Len = reclength

例如:打开一个名叫例如:打开一个名叫 MyFile.txtMyFile.txt 的文件的语句:的文件的语句:

  Open "D:\MyFile.txt" For Random As #1 Len = 100 Open "D:\MyFile.txt" For Random As #1 Len = 100

Page 42: 第 8 章  文件系统管理

VB程序设计与数据库应用42

8.2.3 8.2.3 随机文件 随机文件

(( 33 )关闭文件 )关闭文件 Close [[#]filenumber][,[#]filenumber]… Close [[#]filenumber][,[#]filenumber]…

Page 43: 第 8 章  文件系统管理

VB程序设计与数据库应用43

8.2.3 8.2.3 随机文件 随机文件

22 .随机文件的读和写.随机文件的读和写(( 11 )随机存取文件的写语句 )随机存取文件的写语句

Put #filenumberPut #filenumber ,, PositionPosition ,, varname varname

例:在一个模块中定义一个名为例:在一个模块中定义一个名为 PersonPerson 的新类型 ,当用的新类型 ,当用户单击【写入文件】按钮时,用户单击【写入文件】按钮时,用 TextlTextl 和和 Text2Text2 文本文本框中的文本填充记录。框中的文本填充记录。

Page 44: 第 8 章  文件系统管理

VB程序设计与数据库应用44

8.2.3 8.2.3 随机文件 随机文件 Type PersonType Person

Name As String * 20Name As String * 20

ID As String * 10ID As String * 10

End Type End Type

Dim WriteData As PersonDim WriteData As Person

Private Sub Command1_Click()Private Sub Command1_Click()

WriteData.Name = Text1.TextWriteData.Name = Text1.Text

WriteData.ID = Text2.TextWriteData.ID = Text2.Text

Open "D:\records.dat" For Random As #1 Len = 30Open "D:\records.dat" For Random As #1 Len = 30

Put #1, , WriteDataPut #1, , WriteData

Close #1Close #1

End Sub End Sub

Page 45: 第 8 章  文件系统管理

VB程序设计与数据库应用45

8.2.3 8.2.3 随机文件 随机文件

Page 46: 第 8 章  文件系统管理

VB程序设计与数据库应用46

8.2.3 8.2.3 随机文件 随机文件

(( 22 )随机存取文件的读语句)随机存取文件的读语句

Get #filenumberGet #filenumber ,, PositionPosition ,, varname varname

例:现在来看怎样将上例中的那条记录读回。当用户单击【读取文件】按钮时,例:现在来看怎样将上例中的那条记录读回。当用户单击【读取文件】按钮时,将上例中的那条记录读回并显示在将上例中的那条记录读回并显示在 Text3Text3 和和 Text4Text4 文本框中。 文本框中。

Dim ReadData As PersonDim ReadData As Person

Private Sub Command2_Click()Private Sub Command2_Click()

Open "D:\records.dat" For Random As #1 Len = 30Open "D:\records.dat" For Random As #1 Len = 30

Get #1, , ReadDataGet #1, , ReadData

Close #1Close #1

Text3.Text = ReadData.NameText3.Text = ReadData.Name

Text4.Text = ReadData.IDText4.Text = ReadData.ID

End Sub End Sub

Page 47: 第 8 章  文件系统管理

VB程序设计与数据库应用47

8.2.3 8.2.3 随机文件 随机文件

注:代码见:注:代码见: // 第八章第八章 // 例题例题 /prjexp8_8.prj/prjexp8_8.prj

Page 48: 第 8 章  文件系统管理

VB程序设计与数据库应用48

8.2.3 8.2.3 随机文件 随机文件

33 .随机文件应用实例 .随机文件应用实例 声明一个记载学生考试信息的自定义变量声明一个记载学生考试信息的自定义变量

类型数据,将学生考试信息写入文件类型数据,将学生考试信息写入文件 DataFile2.txtDataFile2.txt 中。中。在窗体上建立两个命令按钮,单击第一个按钮,将要求在窗体上建立两个命令按钮,单击第一个按钮,将要求输入学号、姓名、性别、成绩。不输入学号将结束数据输入学号、姓名、性别、成绩。不输入学号将结束数据录入。单击第二个按钮,将所有数据文件读出,将学号、录入。单击第二个按钮,将所有数据文件读出,将学号、

姓名、性别、成绩在立即窗口中显示出来。姓名、性别、成绩在立即窗口中显示出来。

Page 49: 第 8 章  文件系统管理

VB程序设计与数据库应用49

8.2.3 8.2.3 随机文件 随机文件 Option ExplicitOption Explicit

Private Type Stud 'Private Type Stud ' 声明自定义变量声明自定义变量 StudStud

ID As String * 10ID As String * 10

Name As String * 20Name As String * 20

Sex As String * 10Sex As String * 10

Score As SingleScore As Single

End TypeEnd Type

Dim Student As StudDim Student As Stud

'' 输入数据输入数据

Private Sub Command1_Click()Private Sub Command1_Click()

Open "D:\DataFile2.txt " For Random As #1 Len = 50Open "D:\DataFile2.txt " For Random As #1 Len = 50

Page 50: 第 8 章  文件系统管理

VB程序设计与数据库应用50

8.2.3 8.2.3 随机文件 随机文件 Do While TrueDo While True

Student.ID = InputBox("Student.ID = InputBox(" 请输入学号请输入学号 :"):")

If Trim(Student.ID) = "" ThenIf Trim(Student.ID) = "" Then

Print "Print " 结束数据输入结束数据输入 ""

Close #1Close #1

Exit DoExit Do

End IfEnd If

Student.Name = InputBox("Student.Name = InputBox(" 请输入姓名请输入姓名 :"):")

Student.Sex = InputBox("Student.Sex = InputBox(" 请输入性别请输入性别 :"):")

Student.Score = InputBox("Student.Score = InputBox(" 请输入成绩请输入成绩 :"):")

Put #1, , StudentPut #1, , Student

LoopLoop

End Sub End Sub

Page 51: 第 8 章  文件系统管理

VB程序设计与数据库应用51

8.2.3 8.2.3 随机文件 随机文件 '' 读取数据读取数据

Private Sub Command2_Click()Private Sub Command2_Click()

Open "D:\DataFile2.txt " For Random As #1 Len = 50Open "D:\DataFile2.txt " For Random As #1 Len = 50

Do Until EOF(1)Do Until EOF(1)

Get #1, , StudentGet #1, , Student

Debug.Print "Debug.Print " 学号学号 :", Student.ID:", Student.ID

Debug.Print "Debug.Print " 姓名姓名 :", Student.Name:", Student.Name

Debug.Print "Debug.Print " 姓别姓别 :", Student.Sex:", Student.Sex

Debug.Print "Debug.Print " 成绩成绩 :", Student.Score:", Student.Score

LoopLoop

Close #1Close #1

End SubEnd Sub

Page 52: 第 8 章  文件系统管理

VB程序设计与数据库应用52

8.2.3 8.2.3 随机文件 随机文件

注:代码见:注:代码见: // 第八章第八章 // 例题例题 /prjexp8_9.prj/prjexp8_9.prj

Page 53: 第 8 章  文件系统管理

VB程序设计与数据库应用53

8.2.3 8.2.3 随机文件 随机文件

44 .记录操作 .记录操作 (( 11 )修改记录的数据 )修改记录的数据

(( 22 )追加记录 )追加记录

(( 33 )删除记录)删除记录

Page 54: 第 8 章  文件系统管理

VB程序设计与数据库应用54

8.2.4 8.2.4 相关函数 相关函数

11 .. LocLoc 函数 函数 : Loc(#filenumber) : Loc(#filenumber)

22 .. LofLof 函数 函数 : Lof(#filenumber) : Lof(#filenumber)

33 .. LenLen 函数 函数 : Len(variablename) : Len(variablename)

44 .. EofEof 函数 函数 : Eof(#filenumber) : Eof(#filenumber)

55 .. FileLenFileLen 函数 函数 : FileLen(#filenumber) : FileLen(#filenumber)

66 .. FreeFileFreeFile 函数 函数 : FreeFile : FreeFile

Page 55: 第 8 章  文件系统管理

VB程序设计与数据库应用55

8.3 8.3 文件系统控件 文件系统控件

Page 56: 第 8 章  文件系统管理

VB程序设计与数据库应用56

8.3 8.3 文件系统控件 文件系统控件

Page 57: 第 8 章  文件系统管理

VB程序设计与数据库应用57

8.3.1 8.3.1 驱动器列表框 驱动器列表框 Drive Drive 属性 属性 ChangeChange 事件 事件

Sub Dirve1_Change()Sub Dirve1_Change()

Dir1.Path=Drive1.DriveDir1.Path=Drive1.Drive

End Sub End Sub

Page 58: 第 8 章  文件系统管理

VB程序设计与数据库应用58

8.3.2 8.3.2 目录列表框 目录列表框 PathPath 属性 属性 ChangeChange 事件 事件

Sub Dir1_change()Sub Dir1_change()

File1.Path=Dir1.PathFile1.Path=Dir1.Path

End Sub End Sub

Page 59: 第 8 章  文件系统管理

VB程序设计与数据库应用59

8.3.3 8.3.3 文件列表框 文件列表框 PatternPattern 属性 属性

Page 60: 第 8 章  文件系统管理

VB程序设计与数据库应用60

8.3.4 8.3.4 文件系统控件应用实例文件系统控件应用实例 11 .界面设计.界面设计

Page 61: 第 8 章  文件系统管理

VB程序设计与数据库应用61

8.3.4 8.3.4 文件系统控件应用实例 文件系统控件应用实例

22 .添加程序代码.添加程序代码

①① 把下面代码添加到把下面代码添加到 Drive1Drive1 的的 Change Change 事件中:事件中:

  Private Sub Drive1_Change()Private Sub Drive1_Change()

Dir1.Path = Drive1.DriveDir1.Path = Drive1.Drive

End Sub End Sub

②② 把下面代码添加到把下面代码添加到 Dir1Dir1 的的 Change Change 事件中:事件中:

Private Sub Dir1_Change()Private Sub Dir1_Change()

File1.Path = Dir1.PathFile1.Path = Dir1.Path

End Sub End Sub

Page 62: 第 8 章  文件系统管理

VB程序设计与数据库应用62

8.3.4 8.3.4 文件系统控件应用实例 文件系统控件应用实例

③③ 把下面代码添加到把下面代码添加到 File1File1 的的 DblClick DblClick 事件中:事件中:

Private Sub File1_DblClick()Private Sub File1_DblClick()

If Right(File1.Path, 1) <> "\" ThenIf Right(File1.Path, 1) <> "\" Then

LblFileName.Caption = File1.Path & "\" & File1.FileNameLblFileName.Caption = File1.Path & "\" & File1.FileName

ElseElse

LblFileName.Caption = File1.Path & File1.FileNameLblFileName.Caption = File1.Path & File1.FileName

End IfEnd If

Image1.Picture = LoadPicture(LblFileName.Caption)Image1.Picture = LoadPicture(LblFileName.Caption)

End Sub End Sub

Page 63: 第 8 章  文件系统管理

VB程序设计与数据库应用63

8.3.4 8.3.4 文件系统控件应用实例 文件系统控件应用实例

④④ 把下面代码添加到把下面代码添加到 CmdExitCmdExit 的的 ClickClick 事件中:事件中:

  Private Sub CmdExit_Click()Private Sub CmdExit_Click()

Unload Form1Unload Form1

End Sub End Sub

33 .运行程序.运行程序

注:代码见:注:代码见: // 第八章第八章 // 例题例题 /prjexp8_10.prj/prjexp8_10.prj

Page 64: 第 8 章  文件系统管理

VB程序设计与数据库应用64

8.4 File System Object8.4 File System Object 模型简介模型简介

该模型提供了一个基于对象的工具来处理文件夹和文该模型提供了一个基于对象的工具来处理文件夹和文

件。 件。

FSOFSO 对象模型使应用程序能够创建、改变、移动和删对象模型使应用程序能够创建、改变、移动和删

除文件夹,或者检测是否存在指定的文件夹 。除文件夹,或者检测是否存在指定的文件夹 。

FSOFSO 对象模型也使得对文件的处理变得更加简单。 对象模型也使得对文件的处理变得更加简单。

Page 65: 第 8 章  文件系统管理

VB程序设计与数据库应用65

第八章习题解题思路第八章习题解题思路 8-38-3

– 用用 WriteWrite 命令。命令。– 应对“学号”输入进行有效性检验。应对“学号”输入进行有效性检验。

Page 66: 第 8 章  文件系统管理

VB程序设计与数据库应用66

第八章习题解题思路第八章习题解题思路 8-48-4

– 用用 InputInput 命令读入记录。命令读入记录。– 将记录显示在列表框中用将记录显示在列表框中用 AddItemAddItem 方法。方法。

Page 67: 第 8 章  文件系统管理

VB程序设计与数据库应用67

第八章习题解题思路第八章习题解题思路 8-58-5

– 先定义一个新类型存储职工情况。先定义一个新类型存储职工情况。– 可用控件数组。可用控件数组。

Page 68: 第 8 章  文件系统管理

VB程序设计与数据库应用68

第八章习题解题思路第八章习题解题思路 8-68-6

– 利用利用 Driver, Dir, FileDriver, Dir, File 几个控件。几个控件。– 用用 Line InputLine Input 命令读入。命令读入。