文件题型分析1.docx
- 文档编号:3534386
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:19
- 大小:25.79KB
文件题型分析1.docx
《文件题型分析1.docx》由会员分享,可在线阅读,更多相关《文件题型分析1.docx(19页珍藏版)》请在冰豆网上搜索。
文件题型分析1
第七章文件
学习要求
1、掌握驱动器列表框、目录列表框和文件列表框三个文件管理控件的使用方法
2、掌握顺序文件、随机文件及二进制文件的特点和区别
3、掌握各类文件的基本操作(打开、关闭、写入与读出方法)及常用文件操作语句和函的使用方法
§7.1文件管理控件
考点一:
驱动器列表框(DriveListbox)提高一个下拉式驱动器清单,显示当前系统中所有有效的磁盘驱动器,它具有在设计模式下不可用的Drive属性,用来判断用户在列表框重选择的驱动器名称,使用chDrive语句可以将指定的驱动器设置成为当前驱动器,如:
chdirveDrive1.Drive;chDrive“D”
目录列表框(DirListBox)可以分层显示当前所选驱动器的目录清单,它在设计模式下不可用path属性用来读取和指定当前工作的目录,如:
dir1.path=Drive1.Drive,dir1.path=“c:
\Windows”,使用chdir语句可以改变当前的目录和文件夹,如:
Chdirdir1.path
文件列表框(FileListBox)具有显示选定目录中所有文件或指定类型名称的功能,它具有在设计模式下不可用的path属性,用来设置和返回文件列表框中所有显示文件的路径;Pattern属性用来设置要显示的文件类型;FileName用来设置和返回要显示的文件名称。
ListCount用于返回控件内所有项目的总数;ListIndex用来设置或返回当前控件上所选择的项目的“索引值”,0为第一项,对于文件列表框而言,若在其中没有文件要显示,则ListIndex返回-1。
示例:
(2003秋22题)在窗体上放置了DrivelistBox、DirListBox和FileListBox等三个控件,下面(_____)语句一定不会改变相应控件的Path或Drive属性。
A.Drivel.ListIndex=2
B.Dir1ListIndex=-2
C.File1.FileName="a:
\*.*"
D.File1.Path=Drive1.Drive
答案:
B
分析:
执行A语句后,在驱动器顶端突出显示驱动器列表框中的第三个项目,并触发Chang事件改变了控件的Drive属性;执行B语句后,在目录列表框中突出显示当前目录的上一层目录,但并不改变Dir1.Path的属性;执行C语句后,FilePath的属性值发生改变;执行D语句后,触发PathChang事件,File1.Path发生改变,故答案为B。
§7.2文件的类型
考点一:
按照文件的存取方式和组成,把文件分为顺序文件、随机文件和二进制文件。
顺序文件中的数据是按顺序组织的文本行,每行(即一个记录)的长度可以变化,用“换行”字符作为分隔符号。
在顺序文件中,只知道第一个记录的存放位置,其他的记录无从知晓。
随机文件是由一组长度相等的记录组成的,一般它们以二进制形式存放,每个记录包含一个或多个字段。
可以根据文件中的记录号访问任何一条记录,无须按顺序进行。
二进制文件以二进制方式保存文件,以字节数来定位数据,没有固定的格式,允许程序按所需的任何方式组织和访问数据,对文件中的各个字节数据进行存取访问和改变。
示例:
(2000春30题)在VisualBasic中文件访问的类型有_30__。
A.顺序、随机、二进制
B.顺序、随机、字符
C.顺序、十六进制、随机
D.顺序、记录、字符
答案为A。
§7.3文件的基本操作语句和函数
考点一:
在VB中,文件的操作按下述步骤进行:
•打开(建立)文件:
一个文件必须打开或建立后才能使用。
文件打开后,都有相关的文件号,文件号是一个整数,文件在进行读写时都要指定文件号。
读(写)文件:
把内存中的数据传送到相关的外部设备并作为文件存放的操作叫写数据;把文件中的数据传输到内存中的操作叫读数据。
关闭文件:
将数据写入磁盘,并释放相关的资源。
文件操作命令:
打开文件命令
•Open文件名[For模式][Access存取类型][锁定]As[#]文件号[Len=记录长度]
•文件名为一字符串。
•模式:
Output——顺序输出;Input——顺序输入;Append——添加模式;Random——随机访问模式;Binary——二进制访问模式
•存取类型:
如果打开的是顺序文件并且已指定了模式,则不需要用Access子句。
Read——读文件;Write——写文件;ReadWrite——可读可写
•文件号:
1~511的整数。
•在Input、Random和Binary模式下,可以用不同的文件号打开同一个文件,以Output打开的文件在关闭之前不能用不同的文件号重复地打开它。
当打开一个文件并为它指定一个文件号后,该文件号就代表该文件,直到文件被关闭后,此文件号才可以再被其他文件使用。
示例:
(2000秋28题)下面能够正确打开文件的一组语句是_28__。
A.Open"data1"ForOutputAs#5,Open"data1"ForInputAs#5
B.Open"data1"ForOutputAs#5,Open"data1"ForInputAs#6
C.Open"data1"ForInputAs#5,Open"data1"ForInputAs#6
D.Open"data1"ForInputAs#5,Open"data1"ForRandomAs#6
分析:
当打开一个文件并为它指定一个文件号后,该文件号就代表该文件,直到文件被关闭后,此文件号才可以再被其他文件使用,所以A是错误的。
以Output打开的文件在关闭之前不能用不同的文件号重复地打开它,所以B和C是错误的。
但在Input、Random和Binary模式下,可以用不同的文件号打开同一个文件,故答案为C。
考点二:
以Output、Append、Random和Binary模式打开一个不存在的文件,VB会创建一个相应的文件。
分析:
文件号被视为“文件柄”,文件不能同时被不同的文件号“写”,可以多“读”。
在Input、Random和Binary模式下,可以用不同的文件号打开同一个文件,但以Output和Append模式打开的文件在关闭之前不能用不同的文件号重复打开它;
如果以Output模式打开一个已存在的顺序文件,则该文件中原来数据将被覆盖。
示例:
(2001秋27题)若磁盘文件C:
\Data1.dat不存在,下列打开文件语句中,会产生错误的是___27___。
A.Open"C:
\Data1.dat"ForOutputAs#1
B.Open"C:
\Data1.dat"ForInputAs#2
C.Open"C:
\Data1.dat"ForAppendAs#3
D.Open"C:
\Data1.dat"ForBinaryAs#4
分析:
答案B是以Input方式打开一个不存在的文件,会产生错误,故答案是B。
分析:
当打开顺序文件作为Input时,该文件必须已经存在,否则,会产生一个错误。
然而,当打开一个不存在的文件作为Output或Append时,Open语句首先创建该文件,然后再打开它。
考点三:
文件操作命令:
打开文件命令
•Open文件名[For模式][Access存取类型][锁定]As[#]文件号[Len=记录长度]
•文件名为一字符串。
•模式:
Output——对文件进行写操作;Input——对文件进行读操作;Append——添加模式;Random——随机访问模式;Binary——二进制访问模式
•存取类型:
如果打开的是顺序文件并且已指定了模式,则不需要用Access子句。
Read——读文件;Write——写文件;ReadWrite——可读可写
示例:
(1999秋29题)要对顺序文件进行写操作,下列打开文件语句中正确的是___29___。
A.Open"file1.txt"ForOutputAs#1
B.Open"file1.txt"ForInputAs#1
C.Open"file1.txt"ForRandomAs#1
D.Open"file1.txt"ForBinaryAs#1
分析:
要对顺序文件进行写操作,故答案是A。
考点四:
文件号:
1~511的整数。
Output——设定为顺序输出(写操作)模式。
以Output打开的一个已经存在的顺序文件,则该文件中原有的数据将被覆盖。
示例:
(2002春28题)要向已有数据的C:
\test\test.txt文件添加数据,正确的文件打开命令是___28___。
A.Open"C:
\test\test.txt"ForAppendAs#512
B.Open"C:
\test\test.txt"ForAppendAs#511
C.Open"C:
\test\test.txt"ForOutputAs#512
D.Open"C:
\test\test.txt"ForOutputAs#511
答案:
B
分析:
文件为1~511,故A、C是错误的,Append为添加模式,以Output打开的一个已经存在的顺序文件,则该文件中原有的数据将被覆盖。
故答案是B。
考点五:
可用Close语句关闭文件,但当程序结束时,所有的文件就会自动关闭。
Lock语句与Unlock语句总是成对出现,在关闭文件或结束程序之前,必须用Unlock语句对先前锁定的文件解锁,否则会产生难以预料的错误。
可以用不同的文件号同时打开一个随机文件。
以Output打开的一个已经存在的顺序文件,则该文件中原有的数据将被覆盖。
示例:
(2001春27题)下列______说法是不正确的。
A.当程序正常结束时,所有没用Close语句关闭的文件都会自动关闭
B.在关闭文件或程序结束之前,可以不用Unlock语句对已锁定的记录解锁
C.可以用不同的文件号同时打开一个随机文件
D.用Output模式打开一个顺序文件,即使不对它进行写操作,原来内容也被清除
答案是B。
示例:
(2003秋28题).下列说法______是不正确的。
A.当程序正常结束时,所有没用Close语句关闭的文件都会自动关闭
B.在关闭文件或程序结束之前,可以不用Unlock语句对已琐定的记录解琐
C.可以用不同的文件打开同一个随机文件
D.用Output模式打开一个顺序文件,即使不对它进行写操作,原来内容也被清除
答案是C。
分析:
Unlock语句释放由Lock语句设置的对一个文件的多重访问保护。
在关闭文件或结束程序之前,必须用Unlock语句对先前锁定的文件解锁,否则可能会产生难以预料的错误。
考点六:
Open文件名[For模式][Access存取类型][锁定]As[#]文件号[Len=记录长度],模式:
Output——对文件进行写操作;Input——对文件进行读操作;Append——添加模式;Random——随机访问模式;Binary——二进制访问模式
InPut#语句是从一个打开的顺序文件中读取数据,并把这些数据赋值给相应的变量,其格式是Input#文件号[,变量表]。
示例:
在C盘根目录下有一数据文件(cj.dat),内容如下:
(1999秋10题)
第一列数据表示学号,第二列数据表示数学成绩,第三列数据表示语文成绩,要求根据学号计算学生的总分,并按总分从高到低次序在窗体上输出。
现有程序如下:
9901,
56,
78
9902,
97,
89
9903,
67,
75
9904,
78,
76
9905,
100,
90
Dima(5,4)AsInteger
PrivateSubForm_Click()
DimiAsInteger,jAsInteger
Open"c:
\cj.dat"ForInputAs#1
Fori=1To5
Forj=1To3
___(InPut#1,a(i,j))
Nextj
___(a(i,4))__=a(i,2)+a(i,3)
Nexti
Sort
Fori=1To5
Forj=1To4
Printa(i,j),
Nextj
Nexti
Close#1
EndSub
PrivateSubSort()
DimiAsInteger,jAsInteger,kAsInteger,tempAsInteger
Fori=1To4
Forj=i+1To5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文件 题型 分析