第九章文件(2学) 9.1文件系统控件 9.2文件的读写 9.3常用的文件操作语句和函数
第九章 文件(2学时) 9.1 文件系统控件 9.2 文件的读写 9.3 常用的文件操作语句和函数
91驱动器、目录和文件列表框 驱动器、目录和文件列表框示例 □回区 Sub drvDrive Changeo dirDirectory. Path drvDrive Drive→s顾彐 End sub Active setup Lo ARCHES. BMP ARGYLE BMP HCOMMAND &P. EXE Sub dirDirectory_ Changeo ICONFIG ARTGALRY INI filFile Path dir Directory Path ASPIZHLP SIS AUDDRIVEHLP End sub AUDDRTVE INI 口 sorites aLmOra8 9 所有A5 Sub Form Load( Sub filFile Click() tem=“所有文件(**)” cboType AddItem Item +Space(20-Len(Item))+ tem="窗体文件(*FRM) End sub cboType Additem Item+ Space(20-Len(item))+*.FRI tem="位图文件(*BMP)" Sub filFile_DblClick() cboType. Addltem Item+ Space(20-Len(Item))+ *.BMP" cboType. ListIndex=2 End sub End sub Sub cboType Click() filFile Pattern= Mid(cboType. Text, 21) End sub 例9,1示例程序
9.1 驱动器、目录和文件列表框 Sub drvDrive_Change() dirDirectory.Path = drvDrive.Drive End Sub Sub dirDirectory_Change() filFile.Path = dirDirectory.Path End Sub Sub Form_Load() Item = “所有文件(*.*)” cboType.AddItem Item + Space(20 - Len(Item)) + "*.*" Item = "窗体文件(*.FRM)" cboType.AddItem Item + Space(20 - Len(Item)) + "*.FRM" Item = "位图文件(*.BMP)" cboType.AddItem Item + Space(20 - Len(Item)) + "*.BMP" cboType.ListIndex = 2 End Sub Sub cboType_Click() filFile.Pattern = Mid(cboType.Text, 21) End Sub Sub filFile_Click( ) ┆ End Sub Sub filFile_DblClick( ) ┆ End Sub 例9.1示例程序
1驱动器列表框 Drive属性 [对象]Drve=dve hange事件: 重新设置 Drive属性引发 Change事件 2.目录列表框 八 Wy Path属性: [对象]Path[= pathname Change事件: 重新设置Path属性引发 Change事件
1. 驱动器列表框 Drive属性: [对象.]Drive [= drive] Change事件: 重新设置Drive属性引发Change事件 2. 目录列表框 Path属性: [对象.]Path [= pathname] Change事件: 重新设置Path 属性引发Change事件
3文件列表框 Path属性 显示该路径下的文件 重新设置Path属性引发 Path Change事件 Pattern属性: 显示的文件类型。 [对象] Pattern[= value] 重新设置 Pattern属性引发 Pattern Change事件 例如:fFe.Patn=“*rm”,显示*fm文件。 FileName属性: CC对象】 FileName[= pathname 引用时只返回文件名,相当于fFle.ist( filfile listindex),需用Path属性得 到其路径;设置时可带路径。 cick、 DblClick事件 例如,单击输出文件名 例如,双击执行可执行程序 Sub filFile Click(ilg ChDir( dirDirectory Path)’改变当前目录 Sub filFile DblClick() MsgBoxfilFile FileName End sub Reta|=Shel( filfile. fileName,1)’执行程序 End sub
3. 文件列表框 Path属性: 显示该路径下的文件。 重新设置Path属性引发PathChange事件。 Pattern属性: 显示的文件类型。 [对象.]Pattern [= value] 重新设置Pattern属性引发PatternChange事件。 例如:filFile.Pattern = “*.frm”,显示*.frm文件。 FileName属性: [对象.]FileName [= pathname] 引用时只返回文件名,相当于filFile.List(filFile .ListIndex),需用Path属性得 到其路径;设置时可带路径。 Click、DblClick事件: 例如,单击输出文件名。 例如,双击执行可执行程序。 Sub filFile_Click( ) Sub filFile_DblClick( ) MsgBox filFile.FileName ChDir (dirDirectory.Path) ’ 改变当前目录 End Sub RetVal = Shell(filFile.FileName, 1) ’ 执行程序 End Sub
29.2文件的读写 文件:存储在外部介质上数据的集合。 按名存取 1.记录 由若干个相互关联的数据项组成。 例如,由学生的学习成绩信息组成的记录: 匚学号1姓名「数学成绩语文成绩物理成绩|总分 数据项 2.文件及其种类 文件是记录的集合 顺序访问模式:顺序文件,记录可长可短 随机访问模式:随机文件,记录的长度相同 二进制访问模式:二进制文件(可认为记录长度为1)
9.2 文件的读写 文件:存储在外部介质上数据的集合。 按名存取 1. 记录 由若干个相互关联的数据项组成。 例如,由学生的学习成绩信息组成的记录: 学号 姓名 数学成绩 语文成绩 物理成绩 总分 数据项 2. 文件及其种类 文件是记录的集合 顺序访问模式:顺序文件,记录可长可短 随机访问模式:随机文件,记录的长度相同 二进制访问模式:二进制文件(可认为记录长度为1)
(1)顺序文件 按顺序依次把记录写入文件 按顺序依次把记录读出来。 记录1记录2……记录N文件结束标志 文本文件:一行一条记录,记录可长可短,以“换行”字符为分隔符号 (2)随机文件 N随机文件可以直接访问文件中的任意一个记录 记录长度相同L 根据记录号访问 #1记录1#2记录2 扑N记录N (3)二进制文件 直接把二进制码存放在文件中 中
(1) 顺序文件 按顺序依次把记录写入文件; 按顺序依次把记录读出来。 记录 1 记录 2 …… 记录 N 文件结束标志 文本文件:一行一条记录,记录可长可短,以“换行”字符为分隔符号。 (2) 随机文件 随机文件可以直接访问文件中的任意一个记录。 记录长度相同 根据记录号访问 #1 记录 1 #2 记录 2 …… #N 记录 N (3) 二进制文件 直接把二进制码存放在文件中
一、顺序访问模式 打开文件 读出或写入 关闭文件 1打开文件 open“文件名”[For模式]As#文件号[Len=记录长度] (1)模式 OUTPUT: 写操作 INPUT 读操作 APPEND:追加到文件未尾 (2)文件号 1~511,可以用 Freefile函数获得下一个可利用的文件号 3)记录长度 hmmb小于或等于32767的整数,它指定数据缓冲区的大小。 例如,打开C:NB\ SCORE,供写入数据,指定文件号为#1。 OPEN"C: VB"FOR OUTPUT AS #1
1. 打开文件 Open “文件名” [For 模式] As [#]文件号 [Len=记录长度] (1) 模式 OUTPUT:写操作 INPUT:读操作 APPEND:追加到文件未尾 (2) 文件号 1~511,可以用FreeFile函数获得下一个可利用的文件号。 (3) 记录长度 小于或等于32767的整数,它指定数据缓冲区的大小。 例如,打开C:\VB\SCORE,供写入数据,指定文件号为#1。 OPEN "C:\VB\SCORE" FOR OUTPUT AS #1 一、 顺序访问模式 打开文件 读出或写入 关闭文件
2.写入命令 Print#文件号,输出列表] 保存文本框 假定文本框的名称 txtTest,文件名为 TESTDAT 方法1:把整个文本框的内容一次性地写入文件 Open"TEST. DaT For output As #1 Print #1, txtTest Text Close #1 方法2:把整个文本框的内容一个字符一个字符地写入文件 Open"TEST.DAT"For Output As #1 For i=1 To len(txtTest Text) Print #1, Mid(txt Test Text, i, 1); Next i Close #1 Wite文件号,[输出列表 紧凑格式。数据项之间插入“〃,并加上双引号。 例如,命令:Wrte#1,"one","TWo"123 内容:"one""TWo",123
2. 写入命令 Print #文件号,[输出列表] 保存文本框 假定文本框的名称为txtTest,文件名为TEST.DAT。 方法1:把整个文本框的内容一次性地写入文件。 Open "TEST.DAT" For Output As #1 Print #1, txtTest.Text Close #1 方法2:把整个文本框的内容一个字符一个字符地写入文件。 Open "TEST.DAT" For Output As #1 For i=1 To len(txtTest.Text) Print #1,Mid(txtTest.Text,i,1); Next i Close #1 Write #文件号,[输出列表] 紧凑格式。数据项之间插入“,”,并加上双引号。 例如,命令:Write #1,"One","Two",123 内容:"One","Two",123
3.关闭文件 Close文件号北[文件号 例如,Cose##2#3 4.读顺序文件 NPUT#文件号变量列表 mb把读出的每个数据项分别存放到所对应的变量 LNE|NPUT#文件号,字符串变量 读一行到变量中,主要用来读取文本文件 INPUTS(读取字符数#文件号) 随意读取字符 5.函数 dansersabyLOI文号):返回文件的长度(总字节数 EOF(文件号):返回读写位置 文件未尾时,EOF函数为True,否则为 False
3. 关闭文件 Close [[#]文件号][, [#]文件号]... 例如,Close #1, #2, #3 4. 读顺序文件 INPUT #文件号,变量列表 把读出的每个数据项分别存放到所对应的变量。 LINE INPUT #文件号,字符串变量 读一行到变量中,主要用来读取文本文件。 INPUT$(读取字符数,#文件号) 随意读取字符 5. 函数 LOF(文件号):返回文件的长度(总字节数)。 EOF(文件号):返回读写位置。 文件未尾时,EOF函数为True,否则为False
读文本文件到文本框(共三种方法) 假定文本框名称 AtTest,文件名为 MYFILE.7A1>mm 方法1:行一行读 txtTest Text Open"MYFILE.TXT" For Input As #1 Do While Not EOF (1) Line Input #1, InputData txtTest Text=txt Test Text+ InputData+vbcrLf Loop Close #1 方法2:一次性读 txtTest text Open MYFILE. TXT For Input As #1 txtTest. Text=Input( LoF(1), 1) Miners close #1 中
读文本文件到文本框(共三种方法) 假定文本框名称为txtTest,文件名为MYFILE.TXT。 方法1:一行一行读 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 方法2:一次性读 txtTest.Text = "" Open "MYFILE.TXT" For Input As #1 txtTest.Text = Input( LOF(1),1) Close #1