0、准备一张好软盘,复制考试软件
1、一定要 先登录,
准考证号为,00+学号共 10位 。
2、试卷代号为 VB01-VB08。
3、在 A盘根目录中保存窗体名:
F1.frm,工程名,P1.vbp。
4、在窗体标题上要有自己学号姓名。
第七章
VB文件 的程序设计
7.1 文件的界面设计
一、文件的三个主要控件
? DriveListBox 驱动器列表框
? DirListBox 目录列表框
? FileListBox 文件列表框
? 回顾 windows的资源管理器
二、控件的属性、事件、语

1,DriveListBox (P125)
?Name,drive
(运行中的属性,选中的驱动器 )
?Change事件
?语句,chDrive (仅在 OS一级 )
2,DirListBox (P127)
?Name,path
(选中的文件夹,双击改变 )
?Change事件
?语句,chDri (仅在 OS一级 )
2,FileListBox
?Name,path
(本控件显示文件的路径)
pattem(选中文件的类型 )
?PathChange事件
?语句,chDir (仅在 OS一级 )
三、三个控件组合协调工作
(P131)
1、当 驱动器列表框 控件 change事件发生:
Dir1.path=Drive1.drive
2、当 目录列表框 控件的 change事件发生:
file1.path=dir1.path
例 7--1
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
File1.Pattern = "*.*"
End Sub
Private Sub Dir1_Change()
File1.Path = Dir1.Path
TxtPath.Text = Dir1.Path
File1.Pattern = "*.*"
TxtFile.Text = File1.Pattern
Drive1.Drive = Dir1.Path
End Sub
7.2 程序设计中如何使用文件
P135
一、文件的作用:
存放在外存长期保留,按名存取
文件的打开与关闭
二、文件处理步骤:
打开 OPEN;
读 /写 (input/ print/write)
关闭 (close)
二,VB支持文件访问的类型:
顺序,文本文件( ASCII码)
随机,等长记录,二进制的信息
随时访问文件的任何地方
二进制,不等长记录,二进制的信息。
只能顺序访问。
三、有关文件的语句、函数
P136
1,open 文件名 for 模式 _
ACCESS 存取类型 as #文件号
? 文件名:要打开的文件名
? For 模式,output, input,append、
randem,binary
? Access 存取类型:
read; write; read write
? As #文件号,1到 511(必须惟一)
Open,A:\Exam.TXT" FOR Output AS #5
Open,C:\Exam.TXT" FOR Append AS #5
Open,D:\Exam.TXT" FOR Input AS #5
如 果 文 件, Exam” 不存在
将产生, File Not Found”错误 。
Open,E:\Exam" FOR Random AS #6
Open "A:\Binary" FOR Binary AS #6
看 P138例
Open 语句的注意事项
2、关闭文件语句
close 与 reset
3、锁定与解锁语句 P139
?为什么要此语句?
?如何使用?
?注意不同文件类型对应锁定的不同范围
文件操作的函数 ( P140)
1.eof(文件号)
测试该文件号对应的文件指针是否到
文件尾部。返回,True或 False
2.freefile()
3.filelen(文件号 )
4,LOF(文件号 ) 文件已经打开
7.3 顺序文件的操作 ( P141)
1,open,a:\ccc.txt” for output_
As #10 或
open,a:\ccc.txt” for append_
As #12
2、写语句有两条:
print #10 x,y,z 或
write #10 x,y,z
Print与 write 语句的异同点
( P141)
1、它们都适用与顺序文件。
2,write语句输出的数据分隔的比较
清楚。如:数值数据之间有逗号;输
出的字符串两边有双引号。
3,print 语句输出的数据之间是空格;
字符串是紧凑格式。
4、建议,write语句与以后 VB程序的
input语句(读语句)连用。
Open,Test Dat” FOR Output AS #10
Print #10,1, 2, 3
Print
#10,” We” ;, study” ;, VB6.0”
Close 10
Open,Test.Dat” FOR Output AS #12
Write #12, 1, -2, 3,, ABC”
Write #12
Write #12, 5, 6, 7,, DEF”,
Write #12
Close 12 文件 Test.Dat中的数据是:1,-2,3,"ABC"
5,6,7,"DEF"
文件 Test.Dat的数据排列是:
1 2 3
WeStudyVB6.0
系统自动加
一对引号
顺序文件, 写, 操作举例
Private sub form_click()
dim i as integer
open,a:\abc.txt” for output as #10
for i=1 to 10
write #10 int(ind*100)+1
next i
End sub
或者,print #10 int(ind*100)+1
此文件若不存在,
系统将自动创建
顺序文件, 读, 操作举例
? 读语句,input #10 x,y
Private sub form_click()
dim i as integer
dim j as integer
dim a(10) as integer
open,a:\abc.txt” for input as #10
for i=1 to 10
input #10 a(i)
next j,i
End sub
此文件必须存在!
否则出错
Private Sub Form_Click()
Dim Chr As String,X As Integer
Dim Y As Integer,Logic As Boolean
Dim filenumber As Integer
filenumber = FreeFile
Open"Test.dat" For Input As #filenumber
Input #filenumber,Chr
Input #filenumber,X,Y,Logic
Print Chr
Print X,Y,Logic
End Sub
设文件 Test.Dat的内容如下,
This is File Test.Dat,-2365,4893,#TRUE#
要求按下面格式将文件的内容显示在窗体上 。
This is File Test.Dat
-2365 4893 True
P144
P1442,Line Input # 语句
功能:读出一行数据赋给一个字符型变量或变体变量 。
语句格式为,Line Input #文件号, 变量名
例:
Dim Line As String,Filenumber As Integer
Dim Str As String
Filenumber = FreeFile
Open "C:\CONFIG.SYS" For Input As #Filenumber
Do While Not EOF(Filenumber)
Line Input #Filenumber,Line
Str = Str + Line + Chr(13) + Chr(10)
Loop
Text1.Text = Str
P1453,Input函数
功能:以字符串形式返回从某个以 Input或 Binary模
式打开的文件中读出的一个或多个 字符 。
格式为,Input(n,[#]文件号 )
Open "examp" For Output As #10
For I = 1 To 10
Str = Chr(I + 64)
Print #10,Str;
Next I
Close 10
Open "examp" For Input As #15
Str = Input(10,#15)
Print Str
Close 15
举例
A B C D E,..
产生文件
读入数据
读入 10个字符
用 InPut函数可以读取整个文件赋给一个字符串变量 。
例如:
Option Explicit
Private Sub Form_Click()
Dim Text As String,N As Long,I As Integer
Open "c:\config.sys" For Input As #20
N = LOF(20)
Text = Input(N,#20) ‘ 读取一个文件赋给 TEXT变量
Open "a:\config.sys" For Output As #25
Print #25,Text ?将 text写入 15#文件
Close 20,25
End Sub
看一个综合应用的例子
?P146 例题 7—3
[例 7-3] 编写程序, 将参加计算机等级考试的学生
上机和笔试成绩登记到名为, 考试成绩, 的文件中 。
程序中使用的 App.path的功能是返回正在运
行的应用程序的路径
App表示, 应用程序, ( Application) 对象,
App对象的 Path属性中存有本应用程序的存放路径
信息 ( 驱动器与目录 ) 。
程序代码如下:
Dim Number As String * 6,Score1 As Integer
Dim Score2 As Integer,Return1 As String
Open App.Path + "\考试成绩 " For Append As #10
Number = "1"
Return1 = Chr(13) & Chr(10) ?回车换行
Label1 = "考生号码为 0 结束输入 "
Do
Number = InputBox("输入考生号码 ")
If Trim(Number) <> "0" Then
Score1 = InputBox("输入上机成绩 ")
Score2 = InputBox("输入笔试成绩 ")
Text1 = Text1 & Number & Str(Score1) & _
Str(Score2) & Return1
Write #10,Number,Score1,Score2,Score1 + Score2
End If
Loop Until Trim(Number) = "0"
Close #10
7.4 随机文件程序设计
特点:
1) 随机文件的记录是 定长 的;
2) 记录可包含有一个或多个字段,如果记录
是由 多个字段 组成, 则记录必须是 用户自
定义类型 ;
3) 随机文件打开后, 既 可读又可写, 可根据
记录号 访问文件中任何一个记录, 无需按
顺序进行 。
1.变量声明
(1)定义记录 类型
Type Student-Score
Name As String * 8
Student_Id As String * 6
English As Integer
Math As Integer
Computer As Integer
End type
(2)声明 变量
Private Score AS Student_Score
2.随机文件的打开
Dim Filenum AS Intege
Dim Reclength AS Long
Dim Score AS Student_Score
Filenum = FreeFile
Reclength = Len(Score)
Open,D:\KSCJ.TXT,AS #Filenum _
Len= Reclength
可以不指定 FOR Random,省略值
3.随机文件的 写 操作
Put # 文件号, [记录号 ],变量
4.随机文件的 读 操作
Get#文件号, [记录号 ],变量
5.关闭文件
close
打开一个随机文件,
可以进行读、写操作
例 7--5 P151
7.5 二进制文件
特点:
1、二进制访问模式可以提供最大的灵
活性。
2、二进制存取可以获取任何一个文件
的原始字节。
3、任何类型的文件 (顺序文件或随机文
件 )都可以二进制访问模式打开。
7.5 二进制文件
1,判断文件结束:
?EOF( ) ;
? LOF 函数返回文件的长度,
LOC函数则返回文件的指针的当前位置 。
LOF=LOC 时, 表明文件已读完 。
2, 函数 Input(1,#10)
每次从文件中读取一个字符 。
例 P156
Open "c:\config.sys" For Binary As 10
Do While Location < LOF(10)
Get # 10,,St
C_Line = C_Line & St
Location = Loc(10)
If Right(C_Line,1) = Chr(10) Then
Debug.Print C_Line;
C_Line = ""
End If
Loop
Close
Until location = lof(10)
读字符为“换行”
习题,P156 ( 1,2,4)
实验 10--5
END