版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7.1文件处理文件是存储数据的一种方式。将需要保存的数据写入文件便可以将之存储在磁盘,重复使用。7.1.1文件概述文件是一组相关信息的集合,是存放在磁盘上的一系列相关的字节。文件按名存取。1.记录记录由若干个相互关联的数据项组成。例如,一条学生的学习成绩记录,由学号、姓名、各科成绩、总分等数据项组成。下一页返回7.1文件处理2.文件及其种类VisualBasic中的一个文件由若干条记录组成,而一条记录由若干个字段组成,字段由字符组成。根据不同的分类标准,文件可分为不同的类型,如表7-1所示。为了有效地存取数据,应根据数据存放在文件中的方式,使用适当的文件访问类型。在VisualBasic中有三种文件访问的类型:顺序访问、随机访问、二进制访问。(1)顺序访问从文件头开始,依次访问其中的数据,适用于文本文件。(2)随机访问适用于以记录形式保存的二进制文件,可以存取任意指定位置的记录。上一页下一页返回7.1文件处理(3)二进制访问适用于任意二进制文件,以字节为单位存取数据。3.文件操作的一般步骤要读取文件中的数据,首先将文件“打开”,即将相关信息加载进内存,建立文件与内存中某个文件缓冲区的关联;然后对文件执行“存/取”操作,也就是写入或读取数据;最后“关闭”文件,即释放文件所占用的文件缓冲区。7.1.2访问文件的语句和函数VisualBasic提供了多个用于访问文件的语句和函数。其中的大部分语句和函数适用于3种文件访问类型。本节介绍常用的文件访问语句和函数。上一页下一页返回7.1文件处理1.打开文件———Open语句对文件进行操作之前,必须用Open语句打开或建立一个文件。Open语句的功能是为文件的输入/输出分配缓冲区,指定文件的存取类型(模式)和存取方式,定义与文件相关联的文件号。Open语句的语法格式如下:Open文件名[FOR模式][Access存取类型][锁定]AS[#]文件号[Len=记录长度]格式中的Open、FOR、Access、AS、Len为关键字,其中:(1)文件名可用字符串或字符型变量表示,可以包括盘符和路径。(2)模式(mode)说明访问文件的方式,可以取下列值:上一页下一页返回7.1文件处理①OutPut———设定为顺序输出模式。241②InPut———设定为顺序输入模式。③Append———设定为添加模式,与OutPut方式不同,以Append方式打开顺序文件时,文件指针定位在文件末尾,写入的数据添加到原来文件的后面。④Random———设定为随机访问模式。⑤Binary———设定为二进制访问模式。如果缺省FOR子句,将以随机访问模式打开文件。上一页下一页返回7.1文件处理(3)存取类型(Access):用来指定访问文件的类型,可以是:①Read———对打开的文件只能进行读操作。②Write———对打开的文件只能进行写操作。③ReadWrite———对打开的文件可读可写。(4)文件号(Fileno)。其取值范围为1~511。执行Open语句时,文件与分配给定的文件号相关联。上一页下一页返回7.1文件处理(5)记录长度(Reclength)。其是一个整型表达式,其值≤32767。对顺序文件,用该参数设定缓冲区的大小。不指定时,缓冲区的缺省值为512个字节。注意:(1)如果以Output、Append、Random和Binary模式打开一个不存在的文件,VisualBasic会创建一个相应的文件。(2)在Input、Random和Binary模式下,可用不同的文件号打开同一个文件,但以Output和Append模式打开的文件在关闭之前不能用不同的文件号重复地打开它。上一页下一页返回7.1文件处理(3)所有当前使用的文件号必须是唯一的,即当前使用的文件号不能再分配给其他文件。(4)如果以Output模式打开一个已存在的顺序文件,则该文件中原来数据将被覆盖,例如下列打开文件的语句:①Open"Exam"FOROutputAS#5如果文件“Exam”不存在,则建立一个新文件,可以将数据写入到文件中去。如果文件“Exam”已存在,则该语句打开已存在的文件,新写入的数据将覆盖原来的数据。②Open"Exam"FORAppendAS#5如果文件“Exam”不存在,则建立一个新文件,否则打开已存在的、名为“Exam”的文件,新写入的数据添加到文件的后面,原来的数据仍然存在。上一页下一页返回7.1文件处理③Open"Exam"FORInputAS#5打开已存在的、名为“Exam”的文件,可从中读出数据。如果文件“Exam”不存在,将产生“FileNotFound”错误。2.关闭文件———Close语句文件读写操作完成后,应及时使用Close语句,关闭相应的文件。(1)语句格式:Close[[#]<文件号>]。(2)语句功能:关闭指定的文件号对应的文件,释放相应缓冲区和与该文件相联系的文件号。上一页下一页返回7.1文件处理说明:(1)该语句适用于任何文件。(2)语句中可以包含多个文件号,文件号之间用逗号分隔。(3)若语句中缺省文件号参数,则关闭所有用Open语句打开的文件。(4)当应用程序结束时,会自动关闭所有文件。比如,Close#1,#2,关闭文件号位1和2的文件。3.关闭所有文件———Reset语句(1)格式:Reset。上一页下一页返回7.1文件处理(2)功能:关闭所有用Open语句打开的文件。(3)说明:该语句适用于任何文件。4.锁定和解锁语句———Lock和Unlock语句(1)Lock语句:①格式:Lock<[#]文件号>。②功能:锁定指定文件号所对应的文件,不允许其他用户对该文件进行读/写操作。(2)Unlock语句:①格式:Unlock<[#]文件号>。②功能:解除锁定的文件。上一页下一页返回7.1文件处理5.文件操作函数和语句(1)EOF(文件号):当文件指针到达文件结束标志时返回True,否则返回False。(2)FreeFile[(文件号范围)]:返回Open语句可以使用的下一个有效文件号。(3)LOF(文件号):返回已用Open语句打开的文件的字节数(文件长度)。上一页返回7.2顺序文件以顺序方式存取的文件称为顺序文件,其一般是文本文件。顺序文件有下列特点:每行数据长度可以不同;增加数据时,只能添加到原有数据的最后;查找数据时,必须从头开始顺序查找。7.2.1顺序文件的写操作1.打开文件(1)格式:Open<文件名>For<Output/Append>As[#]<文件号>。(2)功能:用指定的文件号以顺序输出模式或添加模式打开文件。(3)说明:①文件名可以是字符串,包含路径;下一页返回7.2顺序文件②若指定的文件不存在,系统将创建一个相应的文件;③以Output方式打开文件时,文件中原有的数据将被覆盖;④以Append方式打开文件时,写入的数据将添加到原文件的尾部;⑤文件号的使用必须是唯一的,即当前已经占用的文件号不能再分配给其他文件使用,文件号的使用范围是1~511;⑥一个文件在用Output和Append方式打开后,不能再被重复打开。上一页下一页返回7.2顺序文件下面是打开文件的一些例子。Open"D:\hb\Test.txt"ForOutputAs#1该命令打开D盘下hb文件夹中的Test.txt文件,文件号为1。再比如,下列代码打开了D盘下hb文件夹中的Test.txt文件,文件号为100:DimsFileNameAsStringsFileName="D:\hb\Test.txt"OpensFileNameForAppendAs#100上一页下一页返回7.2顺序文件但是,以下两句是错的:Open"File1"ForOutPutAs#9Open"File2"ForOutputAs#9因为不能以相同的文件号打开两个不同的文件。下列两句也是错的:Open"File1"ForAppendAs#10Open"File1"ForAppendAs#11因为不能在文件未关闭前又将其重复打开。上一页下一页返回7.2顺序文件2.Print语句(1)格式:Print<#文件号>,[<输出列表>]。(2)功能:将输出列表中的语句写到顺序文件中。(3)说明:该语句和普通的Print语句的输出控制格式完全相同,也分紧凑和标准两种。3.Write语句(1)格式:Write<#文件号>,[<输出列表>]。(2)功能:将输出列表中的语句写到顺序文件中。(3)说明:Write语句和Print语句的功能基本相同,它们之间的差别主要为:上一页下一页返回7.2顺序文件①Write语句写入的数据按照紧凑格式存放,各数据项之间自动插入逗号作为分隔符;②Write语句写入的字符串数据自动加上双引号作为限界符。7.2.2顺序文件的读操作当一个文件存在时,可以对它进行读操作。读操作分为两种,一种是一个数据一个数据地读,另一种是一行数据一行数据地读。1.打开文件(1)格式:Open<文件名>ForInputAs<#文件号>。(2)功能:用指定的文件号以顺序输入模式打开文件。上一页下一页返回7.2顺序文件(3)说明:以Input方式打开的文件,只能进行读操作。2.Input语句(1)格式:Input<#文件号>[,变量表]。(2)功能:从一个打开的顺序文件中读取数据,并将其赋值给相应的变量。(3)说明:①变量表可以包含简单变量和数组元素,变量之间用逗号间隔,变量类型必须与文件中的数据项的类型一致。②从顺序文件中读数据时,要从头开始,依次读出,若数据类型和变量类型不一致,则赋一个初值给对应的变量。上一页下一页返回7.2顺序文件③从顺序文件读数据时,忽略前导空格、回车符、换行符。④读取数值型数据时,以其后的第一个空格,或逗号,或回车换行符作为结束。⑤读取字符型数据时,以第一个不在双引号里的逗号,或回车换行符作为结束。⑥逻辑型和日期型数据以#号作为起始符和结束符,要求大写。例如,已知Test.txt中的数据:344578789,则执行下列代码后:DimAAsInteger,BASInteger,CAsInteger上一页下一页返回7.2顺序文件DimStAsStringInput#2,A,B,C,St结果为:A=34,B=45,C=78,St=“789”。思考:若已知文件test.dat中的数据如下:ThisisFileTest.dat,-2365,4893,#True#要求按下面的格式将其输出在窗体上:ThisisFiletest.dat-23654893True上一页下一页返回7.2顺序文件3.LineInput语句(1)格式:LineInput<#文件号>,<变量名>。(2)功能:将顺序文件以行为单位读出并赋值给一个变量。(3)说明:①变量为字符型变量,或字符型数组元素,或变体型变量。②将数据行中除回车符和换行符以外的所有字符都赋值给相应的变量。例如,设计程序,将C盘根目录下的config.sys文件的内容显示在文本框中。上一页下一页返回7.2顺序文件分析:本例要用到打开文件、Do循环、EOF函数等,具体参考代码如下:PrivateSubForm_Click()DimLineAsString,filenumberAsInteger,strAsStringfilenumber=freefileOpen“c:\config.sys”ForInputAs#filenumberDoWhileNotEOF(filenumber)LineInput#1,Line
上一页下一页返回7.2顺序文件str=str+Line+Chr(13)+Chr(10)LoopClose#filenumberText1.Text=strEndSub顺序文件的特点是:(1)数据只能从头依次读出;(2)写文件时数据要么覆盖原来的文件,要么添加在文件的最后。上一页下一页返回7.2顺序文件这两个特点给顺序文件的修改与删除带来了困难。顺序文件的应用体现在两方面:(1)从文件中读取原始数据并提供给程序处理。(2)将程序处理结果存放到文件中。上一页返回7.3随机文件的处理以随机方式存取的文件称为随机文件,也称为记录文件,它由一组长度相等的记录组成,一般用于数据库文件。随机文件具有以下特点:(1)记录定长。(2)若记录为单字段,则可对应于任何一个VisualBasic的标准类型;若记录为多字段,则必须由用户进行自定义。(3)可根据记录号随机访问任何一个记录。7.3.1随机文件的打开(1)格式:Open<文件名>[ForRandom]As[#]<文件号>Len=<记录长度>。下一页返回7.3随机文件的处理(2)功能:打开一个随机文件。(3)说明:①Random为文件的缺省访问模式,可省略。②Len为指定的记录长度,不能比实际写入的数据短,否则会出错。7.3.2变量声明在处理随机文件之前
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国科学院科技战略咨询研究科技发展战略研究所特别研究助理(博士后)招聘1人考试参考题库及答案解析
- 2026内蒙古赤峰市宁城县八里罕中学招聘公益性岗位人员1人笔试备考题库及答案解析
- 2026广西河池市罗城仫佬族自治县农业农村局招聘就业见习人员3人考试参考试题及答案解析
- 医用生物化学检测与分析仪器:精准诊断的核心支撑体系全面解析
- 2026年金华市青少年宫公开招聘外聘(兼职)教师33人笔试备考试题及答案解析
- 2026重庆某国有企业员工招聘2人考试参考题库及答案解析
- 2026年甘肃兰州永登县妇幼保健院招聘笔试备考题库及答案解析
- 2026南昌市南钢学校教育集团劳务派遣教师招聘考试备考题库及答案解析
- 2026湖南怀化市溆浦县社会保险服务中心公益性岗位招聘2人考试备考试题及答案解析
- 大连市西岗区2026年教育系统自主招聘应届毕业生备考题库有答案详解
- 艾滋病初筛实验室标准
- 药物相互作用与不良反应预防解析讲座
- 11334《纳税筹划》国家开放大学期末考试题库
- 2025版临床用血技术规范解读课件
- 毒性中药饮片培训
- 2025-2026学年人教版三年级道德与法治上册期末测试卷题(附答案)
- 城市广场石材铺装施工方案详解
- DB54∕T 0527-2025 西藏自治区好住宅技术标准
- 人形机器人数据训练中心项目规划设计方案
- 2026年内蒙古化工职业学院单招职业适应性考试题库带答案
- 2025年留置看护考试题库及答案
评论
0/150
提交评论