二级VB CH12null计算机等级考试 二级VB计算机等级考试 二级VB信息工程学院 包怀忠
E-Mail:baohzh@126.com
手机:15055260972目 录目 录CH12 数据文件1CH12 数据文件CH12 数据文件大纲
1、文件的结构和分类。
2、文件操作语句和函数。
3、顺序文件:
(1)顺序文件的写操作。
(2)顺序文件的读操作。
4、随机文件:
(1)随机文件的打开与读写操作。
(2)随机文件中记录的增加与删除。
(3)用控件显示和修改随机文件。
5、文件系统控件:
(1)驱动...
null计算机等级考试 二级VB计算机等级考试 二级VB信息
学院 包怀忠
E-Mail:baohzh@126.com
手机:15055260972目 录目 录CH12 数据文件1CH12 数据文件CH12 数据文件大纲
1、文件的结构和分类。
2、文件操作语句和函数。
3、顺序文件:
(1)顺序文件的写操作。
(2)顺序文件的读操作。
4、随机文件:
(1)随机文件的打开与读写操作。
(2)随机文件中记录的增加与删除。
(3)用控件显示和修改随机文件。
5、文件系统控件:
(1)驱动器列
框和目录列表框。
(2)文件列表框。
6、文件基本操作。CH12 数据文件CH12 数据文件重点
1.文件的结构与分类
概念:存储在磁盘上的数据的集合
结构:由记录构成,记录由字段(数据项构成)
分类
顺序文件:记录不定长,访问文件时只能从第一条记录开始顺序访问,最典型的是文本文件。
随机文件:记录定长,每条记录由一个记录号,在访问记录的时候,只要指定记录号就能访问该记录。
二进制文件:记录是字节。CH12 数据文件CH12 数据文件2.文件操作语句和函数
访问文件的基本步骤
打开、访问(读或写)、关闭
打开文件
Open <文件名> for <方式> As [#]<文件号> [len=记录长度]
说明
文件名是一个字符串,包含路径;
方式:Output、Input、Append(这三个关键字针对顺序文件);Random(随机文件);Binary(二进制文件)。
文件号:1~511之间的一个整数,文件打开后文件号代表文件,同一时刻打开的多个文件文件号不能相同。CH12 数据文件CH12 数据文件Len=记录长度:记录长度是一个整型值,代表打开文件的记录字节数,该选项针对随机文件,因为随机文件的记录长度相同。
关闭文件
Close [[#]<文件号1>][,[#] <文件号2>]……
说明
关闭文件,文件号必须是用Open语句打开时用到的文件号。
省略所有文件号将关闭所有打开的文件。CH12 数据文件CH12 数据文件常用函数
FreeFile
作用:返回一个尚未使用的文件号
Eof(文件号)
文件指针指向文件尾时返回True,否则返回False。
Lof(文件号)
返回文件的长度,即字节数。
CH12 数据文件CH12 数据文件3.顺序文件
打开
Open <文件名> for <方式> As [#]<文件号>
打开方式
Input:读打开。打开的文件只能读,不能修改;以这种方式打开的文件必须存在。
Output:写打开。打开的文件如果不存在,将建立一个新文件,如果存在,将删除原文件并建立一个新文件。
Append:追加打开。打开的文件如果不存在,和Output相同,即建立一个新文件,如果存在,则文件指针指向文件末尾,可以以追加的方式写入数据。CH12 数据文件CH12 数据文件写文件
Print语句
语法:Print #<文件号>,[表达式列表][,|;]
功能:计算表达式列表中各表达式的值,并将值按照指定格式输出到“文件号”所对应的文件中。
Print语句只是在Print关键字后加了一个“#<文件号>”选项,其他语法及其功能与Print完全一致。
文件号必须是Open语句打开的文件号。
Tab、Spc、Space函数可以用到Print语句中。
CH12 数据文件CH12 数据文件Write语句
语法:Write #<文件号>,<表达式列表>
功能:计算表达式列表各表达式的值并写到文件号对应的文件中。
输出各表达式值到文件时,在各表达式值之间插入“,”
表达式为字符串时,输出到文件中包括定界符双引号;
表达式为布尔或日期类型时,输出到文件中包括定界符“#”;
表达式为数值类型时,输出没有前置和后置空格。CH12 数据文件CH12 数据文件读文件
Input语句
语法:Input #<文件号>,<变量列表>
功能:将文件号指定的顺序文件中的数据按顺序读到“变量列表”列出的各个变量中。
Input通常用来读取Write写的文件。
文件中的数据应与对应变量的类型匹配。
对于数值型,读到一个空格、逗号或换行符时结束。
对于字符串,若遇到的第一个字符(不算前导空格)是双引号(“),Input语句把下一个双引号之前的字符赋给变量(双引号不算在字符串内)CH12 数据文件CH12 数据文件Line Input语句
语法:Line Input #<文件号>,<字符串变量>
功能:将文件指针指向位置的一行读入到其后的字符串变量中 ;
读出的数据中并不包含回车换行符。
主要用于读出文本文件。
Input函数
Input(
,#<文件号>)
第一个参数n是一个整数,表示要读取的字符个数。
函数返回值为读取的内容。CH12 数据文件CH12 数据文件4.随机文件
打开
Open <文件名> [For Random] As #<文件号> [Len=<记录长度>]
说明
For Random是缺省的访问类型,可以省略。
记录长度默认为128个字节,每个记录的长度应等于各数据项所占的字节数之和。如果使用记录变量,程序设计时更多的都是通过Len()函数获取记录变量的长度。
随机文件一旦打开后,既能进行读操作,又能进行写操作。 CH12 数据文件CH12 数据文件写文件
语法:Put #<文件号>,[记录号],<变量名>
说明
记录号是要写入的记录位置;如果缺省记录号,将在当前记录的后面插入一条记录。如果记录号指定的记录以前曾写入过数据,则将以前的记录覆盖掉。
变量名为提供将写入文件的数据的记录型变量名。CH12 数据文件CH12 数据文件读文件
语法:Get #<文件号>,[记录号],<变量名>
说明:
记录号是要读记录的编号,如果省略记录号,则为最近执行Get或Put语句的下一个记录。
变量名通常都是接受记录内容的记录类型变量。 CH12 数据文件CH12 数据文件增加与删除记录
增加记录
将记录添加到文件的末尾,Put语句中的记录号应该是文件的记录数加1即可。通常用如下语句:
intNo = LOF(文件号) / 记录长度 + 1
Put #<文件号>, intNo, <变量名>
删除记录
在磁盘上建立另一个新的随机文件,将要删除记录的文件复制到新文件中,但不复制要删除的记录。CH12 数据文件CH12 数据文件5.文件系统控件
驱动器列表框
属性
Drive:用于设置或返回当前驱动器标识符。
语法:Object.Drive[=驱动器字符串]
Drive1.Drive="c"
常用事件
Change事件,该事件在驱动器列表框的Drive属性发生改变时发生CH12 数据文件CH12 数据文件目录列表框
属性
Path:返回或设置目录列表框中所显示目录的路径。
语法:Object.Path[=路径字符串]
注意
驱动器列表框Drive属性的改变并不自动引起目录列表框Path属性的改变,一般而言,要使目录列表框和驱动器列表框同步改变的话,可以在驱动器列表框的Change事件中用如下代码实现:
dir1.path=drive1.drive
说明: dir1是目录列表框,drive1是驱动器列表框
事件
Change事件,该事件在目录列表框的Path属性发生改变时被触发。CH12 数据文件CH12 数据文件文件列表框
Path属性
文件列表框中显示由Path属性指定目录下的文件名。
要使目录列表框与文件列表框同步,需在目录列表框的Change事件中编程:file1.path=dir1.path ‘file1是一文件列表框,dir1是一目录列表框
Pattern属性
Pattern属性用来设置在程序运行时文件列表框中要显示的文件种类。例如,要将文件类型设置为*.txt文件:
File1.Pattern = "*.txt"
利用分号可指定多种类型的文件显示,如:File1.Pattern = "*.txt;*.exe“
CH12 数据文件CH12 数据文件Filename属性
该属性用于返回或设置文件列表框中选中的文件名。引用时只返回文件名,相当于File1.List(File1 .ListIndex),需用通过Path属性得到其路径。
文件列表框的常用事件是Click和DblClick。CH12 数据文件CH12 数据文件6.文件基本操作
删除文件
格式:Kill <文件名>
说明
文件名可以包含完整路径,亦可用通配符
示例
Kill “c:\my\temp.txt” ‘删除指定文件
Kill “temp.txt” ‘删除当前文件夹下的指定文件
Kill “d:\temp\*.*” ‘删除指定文件夹下的所有文件CH12 数据文件CH12 数据文件文件复制
格式:FileCopy <源文件名>,<目标文件名>
说明
“源文件名”和“目标文件名”均是一个字符串,且都可以包含完整路径;
源文件名与目标文件名可以相同也可以不同。
待复制的源文件不能处于打开状态。
示例:
FileCopy “c:\temp\my.txt”,“d:\you.txt” CH12 数据文件CH12 数据文件文件移动和重命名
格式:Name <源文件名> As <目标文件名>
说明:
Names语句用于移动文件或者改变一个文件名
“源文件名”和“目标文件名”均是一个字符串,且都可以包含完整路径。如果“源文件名”和“目标文件名”指定的路径相同,则仅仅改名,如果“源文件名”和“目标文件名”指定了不同的路径,则移动源文件到目标路径下并改名。
示例
Names “d:\temp\my.txt” As “d:\temp\you.txt”
Names “c:\temp\my.txt” As “d:\temp\you.txt” CH12 数据文件CH12 数据文件考试
选择题(4分)
1.在窗体上画一个名称为Command1的命令按钮和一个名称为Text1的文本框,在文本框中输入以下字符串:Microsoft Visual Basic Programming 然后编写如下事件过程,程序运行后,单击命令按狃,文件outf.txt中的内容是:
A)MVBP B)mvbp
C) M
V
B
P D) m
v
b
pCH12 数据文件CH12 数据文件Private Sub Command1_Click()
Open "d:\temp\outf.txt" For Output As #1
For i = 1 To Len(Text1.Text)
c = Mid(Text1.Text, i, 1)
If c >= "A" And c <= "Z" Then
Print #1, LCase(c)
End If
Next i
Close #1
End SubCH12 数据文件CH12 数据文件2.假定在工程文件中有一个模块,其中定义了如下记录类型
Type Books
Name As String * 10
TelNum As String * 20
End Type
当执行事件过程Command1_Click时,在顺序文件Person.txt中写入一条记录。
下列能够完成该操作的事件过程是( )。CH12 数据文件CH12 数据文件A)Private Sub Command1_Click()
Dim B As Books
Open "c:\Person.txt" For Output As #1
B.Name = InputBox("输入姓名")
B.TelNum = InputBox("输入电话号码")
Write #1, B.Name, B.TelNum
Close #1
End SubCH12 数据文件CH12 数据文件B)Private Sub Command1_Click()
Dim B As Books
Open "c:\Person.txt" For Input As #1
B.Name = InputBox("输入姓名")
B.TelNum = InputBox("输入电话号码")
Print #1, B.Name, B.TelNum
Close #1
End SubCH12 数据文件CH12 数据文件C)Private Sub Command1_Click()
Dim B As Books
Open "c:\Person.txt" For Output As #1
Name = InputBox("输入姓名")
TelNum = InputBox("输入电话号码")
Write #1, B
Close #1
End SubCH12 数据文件CH12 数据文件D)Private Sub Command1_Click()
Dim B As Book
Open "c:\Person.txt" For Input As #1
Name = InputBox("输入姓名")
TelNum = InputBox("输入电话号码")
Print #1, B.Name, B.TelNum
Close #1
End Sub CH12 数据文件CH12 数据文件3.目录列表框的Path属性的作用是( )。
A)显示当前驱动器或指定驱动器上的某目录下的文件名
B)显示当前驱动器或指定驱动器上的目录结构
C)显示根目录下的文件名
D)显示指定路径下的文件 CH12 数据文件CH12 数据文件4.以下关于文件的叙述中,错误的是。
A) 使用Append方式打开文件时,文件指针被定位于文件尾
B) 当以输入方式(Input)打开文件时,如果文件不存在,则建立一个新文件
C) 顺序文件各记录的长度可以不同
D) 随机文件打开后,既可以进行读操作,也可以进行写操作 CH12 数据文件CH12 数据文件5.设有语句:
Open “d:\Text.txt” For Output As #1
以下叙述中错误的是()
A.若 d 盘根目录下无 Text.txt 文件,则该语句创建此文件
B.用该语句建立的文件的文件号为 1
C.该语句打开 d 盘根目录下一个已存在的文件 Text.txt ,之后就可以从文件中读取信息
D.执行该语句后,就可以通过 Print # 语句向文件 Text.txt 中写入信息 CH12 数据文件CH12 数据文件6.以下叙述中错误的是()
A. 顺序文件中的数据只能按顺序读写
B.对同一个文件,可以用不同的方式和不同的文件号打开
C.执行Close 语句,可将文件缓冲区中的数据写到文件中
D.随机文件中各记录的长度是随机的CH12 数据文件CH12 数据文件7.窗体上有1个名称为Text1的文本框和1个名称为Command1的命令按钮。要求程序运行时,单击命令按钮,就可以把文本框中的内容写到文件out.txt中,每次写入的内容附加到文件原有内容之后。下面能够实现上述功能的程序是()
A) Private Sub Command1_Click()
Open “out.txt” For Input As #1
Print #1,Text1.Text
Close #1
End Sub CH12 数据文件CH12 数据文件B) Private Sub Command1_Click()
Open “out.txt” For Output As #1
Print #1,Text1.Text : Close #1
End Sub
C) Private Sub Command1_Click()
Open “out.txt” For Append As #1
Print #1,Text1.Text : Close #1
End Sub
D) Private Sub Command1_Click()
Open “out.txt” For Random As #1
Print #1,Text1.Text : Close #1
End Sub CH12 数据文件CH12 数据文件8.在窗体上有1个名称为CD1的通用对话框和1个名称为 Command1的命令按钮,以及其他一些控件。要求在程序运行时,单击Command1按钮,则显示打开文件对话框,并在选择或输入了1个文件名后,就 可以打开该文件。以下是Command1_Click事件过程的两种算法
算法1:
Private Sub Command1_Click()
CD1.ShowOpen
Open CD1.FileName For Input As #1
End SubCH12 数据文件CH12 数据文件算法2:
Private Sub Command1_Click()
CD1.ShowOpen
If CD1.FileName<>”” Then
Open CD1.FileName For Input As #1
End If
End Sub
下面关于这两种算法的叙述中正确的是()
A) 显示打开文件对话框后若未选择或输入任何文件名,则算法2会出错,算法1不会
B) 显示打开文件对话框后若未选择或输入任何文件名,则算法1会出错,算法2不会
C) 两种算法的执行结果完全一样
D) 算法1允许输入的文件名中含有空格,而算法2不允许CH12 数据文件CH12 数据文件9.下面关于文件的叙述中错误的是
A)随机文件中各条记录的长度是相同的
B)打开随机文件时采用的文件存取方式应该是Random
C)向随机文件中写数据应使用语句 Print #文件号
D)打开随机文件与打开顺序文件一样,都使用Open语句 CH12 数据文件CH12 数据文件填空题(4-6分)
1.在名称为Form1的窗体上画一个文本框,其名称为Text1,在属性窗口中把该文本框的MultiLine属性设置为True,然后编写如下的事件过程:
该事件过程的功能是,把磁盘文件smtext1.txt的内容读到内存并在文本框中显示出来,然后把该文本框中的内容存入磁盘文件smtext2.txt。请填空。CH12 数据文件CH12 数据文件Private Sub Form_Click()
Open "d:\test\smtext1.txt" For Input As #1
Do While Not 【 】
Line Input #1, aspect$
whole$ = whole$ + aspect$ + Chr$(13) + Chr$(10)
Loop
Text1.Text = whole$
Close #1
Open "d:\test\smtext2.txt" For Output As #1
Print #1, 【 】
Close #1
End Sub Eof(1) Text1.TextCH12 数据文件CH12 数据文件2.在窗体上画1个文本框,名称为Text1,然后编写程序,该程序的功能是,在D盘temp目录下建立1个名为dat.txt的文件,在文本框中输入字符,每次按回车键(回车符的ASCII码是13)都把当前文本框中的内容写入文件dat.txt,并清除文本框中的内容;如果输入“END”,则结束程序。请填空。
CH12 数据文件CH12 数据文件Private Sub Form_Load()
Open"d:\temp\dat.txt“ For Output As #1
Text1.Text=""
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
lf【 】=13 Then
If UCase(Text1.Text)=【 】Then
Close 1 : End
Else
Write #1,【 】:Text1.Text=""
End If
End If
End SubKeyAscii “END” Text1.TextCH12 数据文件CH12 数据文件3.在窗体上画一个命令按钮和一个文本框,其名称分别为 Command1 和 Text1 ,然后编写如下事件过程:
Private Sub Command1_Click()
Dim inData As String : Text1.Text=" "
OPen "d:\Myfile.txt" for 【 】 As #1
Do While 【 】
Input # 1,inData
Text1.Text=Text1.Text+inData
Loop
Close #1
End Sub
程序的功能是,打开 D 盘根目录下的文本文件 myfile.txt, 读取它的全部内容并显示在文本框中。请填空Input Not Eof(1)CH12 数据文件CH12 数据文件4.下面程序的功能是把文件file11.txt中重复字符去掉后(即若有多个字符相同,则只保留1个)写入文件file2.txt。请填空。
Private Sub Command1__Click()
Dim inchar AS String,temp AS String,outchar AS String
Outchar=“”
Open ”file1.txt” For Input AS #1
Open ”file2.txt” For Output AS 【 】
n=LOF( 【 】 ) : inchar=Input$(n,1)
For k=1 To n
temp=Mid(inchar,k,1)
If InStr(outchar,temp)=【 】 Then
outchar=outchar & temp
End If
Next k
print #2, 【 】: close #2 : close #1
End Sub#2 1 0 outcharCH12 数据文件CH12 数据文件5.在窗体上先画1个名为Text1的文本框和1个名为Label1的标签,再画1个名为OP1的有4个单选 按钮数组,其Index属性按季度顺序为 0~3(见图1)。在文件sales.txt中按月份顺序存有某企业某年12个月的销售额。要求在程序执行时,鼠标单击1个单选按钮,则Text1中显示 相应季度的销售总额,并把相应的文字显示在标签上。图2是单击“第3季度”单选按钮产生的结果。请填空。CH12 数据文件CH12 数据文件Dim sales(12) As Long
Private Sub Form_Load()
open “sales.txt” For Input AS #1
For k=1 To 12
Input #1,sales(k)
Next k
Close #1
End Sub CH12 数据文件CH12 数据文件Private Sub 【 】 (Index AS Integer)
Dim sum AS Long ,k AS Ingeger,month AS Ingeger
sum=0 : month=Index* 【 】
For k=1 To 3
month=month+1 : sum=sum+sales(month)
Next k
Label1.Caption=Opl(Index). 【 】 & “销售总额:”
Text1=sum
End SubOP1 3 CaptionCH12 数据文件CH12 数据文件6.设窗体上有一个名称为CD1的通用对话框,一个名称为Text1的文本框和一个名称为Command1的命令按钮。程序执行时,单击 Command1按钮,则显示打开文件对话框,操作者从中选择一个文本文件,并单击对话框上的“打开”按钮后,则可打开该文本文件,并读入一行文本,显示在Text1中。下面是实现此功能的事件过程,请填空。 CH12 数据文件CH12 数据文件Private Sub Command1_Click()
CD1.Filter ="文本文件|*.txt|Word 文档|*.doc"
CD1.Filterinder = 1 :CD1.ShowOpen
If CD1.FileName<>"“ Then
Open 【 】 For Input As #1
Line Input #1,ch$
Close #1
Text1.Text = 【 】
End If
End Sub CD1.FileName ch$CH12 数据文件CH12 数据文件7.以下程序的功能是:把顺序文件smtext1.txt的内容全部读入内存,并在文本框Text1中显示出来,请填空。
Private Sub Command1_Click()
Dim inData As String
Text1.Text = ""
Open "smtext1.txt" 【 】 As 【 】
Do While 【 】
Input #2, inData
Text1.Text = Text1.Text & inData
Loop
Close #2
End SubFor Input #2 Not EOF(2)null
本文档为【二级VB CH12】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。