第九章[单选题]
数据文件:通过前面几章的学习,我们知道,编写的所有程序都保存在外存中,而程序中产生的数据,如变量、数组等只能存放在内存中,一旦退出程序,这些数据就会消失。如果希望将这些数据脱机保存,供用户随时使用,则需要将它们以数据文件的形式存放在磁盘等外部介质上,这样用户就可以方便地读取和使用这些数据了。为此,Visual Basic6.0支持对文件的操作。本章主要介绍Visual Basic6.0文件的概念、类型、相应的操作方法以及文件系统控件的使用。 本章学习目标: (1)掌握文件的概念、文件结构和分类。 (2)掌握文件的打开和关闭语句的格式及其应用。 (3)掌握与文件操作有关的函数功能及应用。 (4)掌握顺序文件的读、写操作语句格式及应用。 (5)掌握随机文件的读、写操作语句格式及应用。 (6)掌握随机文件记录的增加与删除方法。 (7)掌握文件系统控件:驱动器列表框、目录列表框、文件列表框的常用属性和事件以及其同步操作方法。 重点:文件的相关操作:打开、读/写、关闭,文件系统控件同步操作方法。 难点:打开文件的格式及应用。 学习方法: 先看课本,再看相关知识点的微课。在看微课时,看不懂的同学可以反复看,直到看懂为止,实在看不懂的,把不懂的问题记录下来,在讨论群里讨论得到解决,或者反映给助教,助教反映给教师,教师在课堂上统一讲解面上问题。在学习的过程中要养成记笔记的好习惯。所有的同学都要在看完书和微课后,做网站里布置的作业以验证是否掌握所学知识,最后提交作业。 参考教材: (1)《面向对象程序设计基础——Visual Basic》,清华大学出版社,第9章 数据文件。 (2)《全国计算机等级考试二级教程——Visual Basic语言程序设计(2018年版)》,高等教育出版社。 (3)《全国计算机等级考试教程二级Visual Basic》,人民邮电出版社。9.1文件结构和分类:掌握数据文件的结构组成,掌握文件的不同分类标准的文件类型。
9.2文件操作语句和函数:掌握数据文件的打开和关闭语句的格式及其应用。掌握与数据文件操作有关的函数功能及应用。
9.3顺序文件的写/读操作:掌握顺序文件的读、写操作语句格式及应用。
9.4随机文件的写/读操作:掌握随机文件的读、写操作语句格式及应用。
9.5随机文件中记录的增加与删除:掌握随机文件记录的增加与删除方法。
9.6驱动器、目录、文件列表框:掌握文件系统控件:驱动器列表框、目录列表框、文件列表框的常用属性和事件以及其应用。
9.7文件系统控件的综合应用:掌握文件系统控件:驱动器列表框、目录列表框、文件列表框的常用属性和事件以及其同步操作方法。
在窗体Form1上画一个名称为Command1的命令按钮,编写如下程序代码:
Private Type stu
sn As String * 20
class As String * 20
End Type
Private Sub Command1_Click()
Dim s As stu
Open "c:allstu.dat" For Random As #1 Len = Len(s)
s.sn = "John"
s.class = "Computer 2013"
Put #1, , s
Close #1
End Sub
则以下叙述中正确的是________。
, 文件c:allstu.dat中的每条记录是等长的
, 定义记录类型stu的Type语句可以移到事件过程Command1_Click中
, 如果文件c:allstu.dat不存在,则Open语句执行中出现'文件未找到'的错误
]
[单选题]
下列关于随机文件的描述中,错误的是________。
, 只能随机存取, 每条记录的长度必须相同, 每条记录都有一个记录号
]
[单选题]
设在工程文件中有一个标准模块,其中定义了如下记录类型:
Type Books
Name As String * 10
TelNum As String * 20
End Type
在窗体上画一个名为Command1的命令按钮,要求当执行事件过程Command1_Click时,在顺序文件Person.txt中写入一条Books类型的记录。下列能够完成该操作的事件过程是________。
, Private Sub Command1_Click()Dim B As BooksOpen 'Person.txt' For Output As #1B.Name=InputBox('输入姓名')B.TelNum=InputBox('输入电话号码')Write #1, BClose #1End Sub
, Private Sub Command1_Click()Open 'Person.txt' For Input As #1Name=InputBox('输入姓名')TelNum=InputBox('输入电话号码')Print #1, Name, TelNumClose #1End Sub
, Private Sub Command1_Click()Dim B As BooksOpen 'Person.txt' For Input As #1B.Name=InputBox('输入姓名')B.TelNum=InputBox('输入电话号码')Print #1, B.Name, B.TelNumClose #1End Sub
]
[单选题]
下列关于顺序文件的描述中,正确的是________。
, 主要的优点是占空间少,且容易实现记录的增减操作
, 文件的组织与数据写入的顺序无关
, 每条记录的长度是固定的
]
[单选题]
以下关于文件的叙述中,错误的是________。
, 顺序文件有多种打开文件的方式
, 随机文件一般占用空间比较小
, 读取顺序文件的记录时,只能从头至尾逐记录进行
]
[单选题]
Visual Basic的窗体文件(.frm文件)是一个文本文件,它________。
]
[单选题]
为了返回或设置磁盘驱动器的名称,应使用的驱动器列表框的属性是________。
选项:[ListIndex, List, ChDrive, Drive][单选题]
窗体上有一个名称为Text1的文本框,一个名称为Command1的命令按钮。以下程序的功能是从顺序文件中读取数据:
Private Sub Command1_Click()
Dim s1 As String, s2 As String
Open "c:d4.dat" For Append As #3
Line Input #3, s1
Line Input #3, s2
Text1.Text=s1+s2
Close
End Sub
该程序运行时有错误,应该进行的修改是________。
[单选题]
如果希望向一个顺序文件写入数据,但又要保留文件中的原有内容,应采取的文件打开方式是________。
选项:[Append, Output, Input, Random][单选题]
Print #语句的作用是________。
, 向随机文件中写数据
, 向窗体上输出数据
, 从顺序文件中读入数据]
[单选题]
以下不属于Visual Basic数据文件的是________。
, 数据库文件
, 顺序文件, 随机文件]
[单选题]
窗体上有一个名称为Command1的命令按钮。要求编写程序,把文件f1.txt的内容写到文件f2.txt中,然后将f1.txt删除。命令按钮的单击事件过程如下:
Private Sub Command1_Click()
Open "c:f1.txt" For Input As #1
Open "c:f2.txt" For Output As #2
Do While Not EOF(2)
Line Input #1, str1
Print #2, str1
Loop
Close
Kill "c:f1.txt"
End Sub
该程序运行时发生错误,应该进行的修改是________ 。
[单选题]
窗体的单击事件过程如下:
Private Sub Form_Click()
n = FreeFile
Open "e:f1.txt" For Input As n
Do While Not EOF(n)
Line Input #n, str1
Print str1
Loop
Close
End Sub
对于以上程序,如下叙述中错误的是________。
, Open打开一个随机文件
, Line Input语句从#n对应的文件中读数据,并赋值给str1
]
[单选题]
设有如下程序代码:
Private Sub Command1_Click()
Dim Sname As String, SNo As String, Score As Single
Open "D:Score.txt" __________ As #1
SNo = InputBox("输入学号:")
Sname = InputBox("输入姓名:")
Score = Val(InputBox("输入成绩:"))
Print #1, SNo, Sname, Score
Close #1
End Sub
以上程序的功能是,向文件D:Score.txt中写入一名同学的学号、姓名和成绩,当文件不存在时,则新建该文件;当文件存在时,则覆盖原文件的内容。在横线处应填入的内容是________。
, For OverWrite
, For Random
]
[单选题]
下列关于数据文件的描述中,错误的是________。
选项:[VB应用程序不能把一个二维表格中的数据存入文件, VB应用程序可以用随机方式读写数据文件, VB应用程序在读写数据文件之前,必须用Open语句打开该文件, VB数据文件不包括VB的窗体文件][单选题]
某人编写了向随机文件中写一条记录的程序,代码如下:
Type RType
Name As String * 10
Tel As String * 20
End Type
Private Sub Command1_Click()
Dim p As RType
p.Name=InputBox("姓名")
p.Tel=InputBox("电话号")
Open "Books.dat" For Random As #1
Put #1, , p
Close #1
End Sub
该程序运行时有错误,修改的方法是________。
, 在类型定义'Type RType'之前加上'Private'
]
[单选题]
在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim s1 As String, s2 As String
Open "D:data.txt" For Input As #1
Seek #1, 5
s1 = Input$(2, #1)
s2 = Input$(3, #1)
Print Seek(1)
Close #1
End Sub
假设有磁盘文件D:data.txt,且文件足够长,当程序运行时,单击Command1,在窗体上输出的结果是________。
, 9
, 11
, 5]
[单选题]
在一个有若干个整数的顺序文件中查找一个数(这个数从文本框中输入),找到后在标签Label1中显示该数是文件中第几个数;如果没找到,则显示文件中没有该数的信息
Private Sub Command1_Click()
Dim x As Integer, n As Integer
a = Val(Text1.Text)
Open "file1.txt" For Input As #1
Do While Not EOF(1)
Input __________________
n = n + 1
If x = a Then
Label1.Caption = a & "是文件中第" & n & "个数"
Close #1
Exit Sub
End If
Loop
Close #1
Label1.Caption = "文件中没有" & a
End Sub
要使上面的程序代码实现上述功能,在横线处应填写的是________。
, 1, n
, #1, x]
[单选题]
窗体上有一个名称为Command1的命令按钮。其单击事件过程如下:
Private Sub Command1_Click()
Open "c:f1.txt" For Input As #1
Open "c:f2.txt" For Output As #2
Do While Not EOF(1)
Line Input #1, str1
Print #2, str1
Loop
Close
End Sub
以下关于上述程序的叙述中,错误的是________。
, EOF函数可以判断是否已到文件的末尾, Close能够把打开的两个文件都关闭]
[单选题]
某人编写了下面的程序,希望能把Text1文本框中的内容写到out.txt文件中:
Private Sub Command1_Click()
Open "out.txt" For Output As #2
Print "Text1"
Close #2
End Sub
调试时发现没有达到目的,为实现上述目的,应做的修改是________。
, 把Print 'Text1' 改为Print #2, Text1
]
[单选题]
下面关于文件叙述中错误的是________。
, 随机文件每个记录的长度是固定的
, 顺序文件的记录是顺序存放的,可以按记录号直接访问某个记录
]
[单选题]
用Open语句打开文件时,如果省略"For 方式",则该文件的存取方式是________。
, 顺序存取方式
]
[单选题]
以下关于文件的叙述中,错误的是________。
选项:[EOF函数用来测试是否到达文件尾, 顺序文件中的记录是一个接一个地顺序存放, 文件被打开后,自动生成一个文件指针, 随机文件中记录的长度是随机的][单选题]
窗体上有一个名称为Command1的命令按钮,一个名称为List1的列表框。命令按钮的单击事件过程如下:
Private Sub Command1_Click()
Open "c:f1.txt" For Input As #1
Do While Not EOF(1)
Input #1, str1
List1.AddItem str1
Loop
Close
End Sub
对于上述程序,以下叙述中错误的是________。
[单选题]
有如下过程:
Sub proc()
Dim ch As String
Open "file1.txt" For Input As #1
Open "file1_bak.txt" For Output As #2
Do While Not EOF(1)
ch = Input$(1, #1)
Print #2, ch;
Loop
Close #1, #2
End Sub
这一过程的功能是________。
[单选题]
关于随机文件,以下叙述中错误的是________。
选项:[使用随机文件能节约空间, 随机文件记录中,每个字段的长度是固定的, 随机文件中,每个记录的长度相等, 随机文件的每个记录都有一个记录号][单选题]
在Open语句中可以用Output和Append两种方式打开顺序文件,其主要区别是________。
, Output和Append都可以在文件的最后一个记录后面添加数据
, Output和Append都只能从文件的第一个记录开始写数据
]
[单选题]
为了保存数据,需打开顺序文件"E:UserData.txt",以下正确的命令是________。
, Open 'E:UserData.txt' For Output As #2, Open E:UserData.txt For Input As #1
, Open E:UserData.txt For Output As #1]
[单选题]
以下说法中正确的是________。
, Shape控件可以将同一个窗体上的多个单选按钮分成多个组
, 当一个复选框被选中时,它的Value属性的值是1
, 能获取列表框List1中最后一个列表项内容的表达式是List1.List(ListCount-1)
]
[单选题]
以下关于文件的叙述中,正确的是________。
, 用Append方式打开的文件,既可以进行读操作,也可以进行写操作
, 随机文件记录中的各个字段具有相同的长度
, 随机文件通常比顺序文件占用的空间小]