第九章

数据文件:通过前面几章的学习,我们知道,编写的所有程序都保存在外存中,而程序中产生的数据,如变量、数组等只能存放在内存中,一旦退出程序,这些数据就会消失。如果希望将这些数据脱机保存,供用户随时使用,则需要将它们以数据文件的形式存放在磁盘等外部介质上,这样用户就可以方便地读取和使用这些数据了。为此,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

则以下叙述中正确的是________


选项:[语句'Put #1, , s'中没有指明记录号,因此系统总是把记录写到文件的头部
, 文件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, B.Name, B.TelNumClose #1End Sub
, 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文件)是一个文本文件,它________


选项:[不能作为Visual Basic的数据文件来访问, 可以当作顺序文件读取, 可以当作随机文件读取, 既可当作顺序文件读取也可当作随机文件读取
]
[单选题]

为了返回或设置磁盘驱动器的名称,应使用的驱动器列表框的属性是________

选项:[ListIndex, List, ChDrive, Drive]
[单选题]

窗体上有一个名称为Text1的文本框,一个名称为Command1的命令按钮。以下程序的功能是从顺序文件中读取数据:

Private Sub Command1_Click()

  Dim s1 As Strings2 As String

  Open "cd4.dat" For Append As #3

  Line Input #3s1

  Line Input #3s2

  Text1.Texts1s2

  Close

End Sub

该程序运行时有错误,应该进行的修改是________


选项:[将两条Line Input语句合并为Line Input #3, s1,s2, 将Line Input改为Line, 将Close语句改为Close #3, 将Open语句中的For Append改为For Input]
[单选题]

如果希望向一个顺序文件写入数据,但又要保留文件中的原有内容,应采取的文件打开方式是________

选项:[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

该程序运行时发生错误,应该进行的修改是________


选项:[Not EOF(2)应该改为Not EOF(1), Line Input应改为Get, Close语句改为Close All, 打开f1.txt应该使用Output 方式,打开f2.txt 应该使用Input 方式]
[单选题]

窗体的单击事件过程如下:

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

对于以上程序,如下叙述中错误的是________


选项:[n = FreeFile的作用是自动获取文件号,并赋值给n, Not EOF(n)的含义是没有到达n所对应文件的末尾
, 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 Output, For Input
, 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.NameInputBox("姓名")

  p.TelInputBox("电话号")

  Open "Books.dat" For Random As #1

  Put #1, , p

  Close #1

End Sub

该程序运行时有错误,修改的方法是________


选项:[Dim p As RType必须置于窗体模块的声明部分, Put语句应该写为Put #1,p.Name ,p.Tel, 应把Open语句中的For Random 改为 For Output
, 在类型定义'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,在窗体上输出的结果是________


选项:[10
, 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, a, 1, a
, 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

以下关于上述程序的叙述中,错误的是________



选项:[f1.txt和f2.txt均是顺序文件, 程序的功能是将f2.txt文件的内容复制到f1.txt中
, EOF函数可以判断是否已到文件的末尾, Close能够把打开的两个文件都关闭]
[单选题]

某人编写了下面的程序,希望能把Text1文本框中的内容写到out.txt文件中:

Private Sub Command1_Click()

  Open "out.txt" For Output As #2

  Print "Text1"

  Close #2

End Sub

调试时发现没有达到目的,为实现上述目的,应做的修改是________



选项:[把Print 'Text1' 改为Write 'Text1', 把Print 'Text1' 改为 Print Text1, 把所有 #2 改为 #1
, 把Print 'Text1' 改为Print #2, Text1
]
[单选题]

下面关于文件叙述中错误的是________


选项:[不论是顺序文件还是随机文件,都是数据文件, VB数据文件需要先打开,再进行处理
, 随机文件每个记录的长度是固定的
, 顺序文件的记录是顺序存放的,可以按记录号直接访问某个记录
]
[单选题]

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

对于上述程序,以下叙述中错误的是________


选项:[运行程序后,列表框中的列表项都是f1.txt中的记录, Close的作用是关闭已经打开的数据文件, 以输入方式打开随机文件f1.txt, 单击命令按钮后,把f1.txt中的所有内容添加到列表框中]
[单选题]

有如下过程:

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

这一过程的功能是________


选项:[把文件file1.txt复制为file1_bak.txt文件, 把文件file1_bak.txt复制为file1.txt文件, 读入文件file1_bak.txt的内容在窗体上显示, 读入文件file1.txt的内容在窗体上显示]
[单选题]

关于随机文件,以下叙述中错误的是________

选项:[使用随机文件能节约空间, 随机文件记录中,每个字段的长度是固定的, 随机文件中,每个记录的长度相等, 随机文件的每个记录都有一个记录号]
[单选题]

Open语句中可以用OutputAppend两种方式打开顺序文件,其主要区别是________


选项:[Output在文件最后一个记录后面添加数据,而Append总是从文件的第一个记录开始写, Output总是从文件的第一个记录开始写,而Append在文件最后一个记录后面添加数据
, Output和Append都可以在文件的最后一个记录后面添加数据
, Output和Append都只能从文件的第一个记录开始写数据
]
[单选题]

为了保存数据,需打开顺序文件"E:UserData.txt",以下正确的命令是________


选项:[Open 'E:UserData.txt' For Input As #2
, Open 'E:UserData.txt' For Output As #2, Open E:UserData.txt For Input As #1
, Open E:UserData.txt For Output As #1]
[单选题]

以下说法中正确的是________


选项:[当在名称为Drive1的驱动器列表框中选取不同的驱动器时,系统将执行事件过程Drive1_Click
, Shape控件可以将同一个窗体上的多个单选按钮分成多个组
, 当一个复选框被选中时,它的Value属性的值是1
, 能获取列表框List1中最后一个列表项内容的表达式是List1.List(ListCount-1)
]
[单选题]

以下关于文件的叙述中,正确的是________


选项:[随机文件的记录是定长的
, 用Append方式打开的文件,既可以进行读操作,也可以进行写操作
, 随机文件记录中的各个字段具有相同的长度
, 随机文件通常比顺序文件占用的空间小]

温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!
点赞(0) dxwkbang
返回
顶部