Basic程序设计教学课件.ppt_第1页
Basic程序设计教学课件.ppt_第2页
Basic程序设计教学课件.ppt_第3页
Basic程序设计教学课件.ppt_第4页
Basic程序设计教学课件.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第13章数据文件 1 掌握VB中文件的概念 种类及其结构 2 掌握顺序文件的操作 打开 读 写 关闭 3 掌握随机文件的操作 打开 读 写 关闭 4 了解二进制文件的操作 5 了解与文件操作有关的一些语句 本章内容及要求 本章重点 顺序文件的操作 打开 读 写 关闭 随机文件的操作 打开 读 写 关闭 本章难点 随机文件 二进制文件的操作 第13章数据文件 文件是存储在外部介质 如磁盘 上的以文件名标识的数据的集合 通常由一组存放在磁盘上的相关字节组成 当应用程序要访问文件时 必须自己决定文件中字节的意义 比如 表示字符 数据记录 整数 字符串等等 存储在磁盘上的文件称为磁盘文件 与计算机相连的设备称为设备文件 这些文件都不在计算机内 统称为外部文件 13 1文件概述 一 文件及其结构文件 存储在外部介质上数据的集合 按名存取磁盘文件是由数据记录组成 记录是计算机处理数据的基本单位 它由一组具有共同属性相互关联的数据项组成 数据项 文件的概念 二 文件分类 根据访问文件的方式将文件分成3类 顺序文件随机文件二进制文件 1 顺序文件顺序文件 SequentialFile 是普通的文本文件 顺序文件中的记录按顺序一个接一个地排列 读写文件存取记录时 都必须按记录顺序逐个进行 一行一条记录 一项数据 记录可长可短 以 换行 字符为分隔符号 2 随机文件随机文件 RandomAccessFile 是可以按任意次序读写的文件 其中每个记录的长度必须相同 在这种文件结构中 每个记录都有其唯一的一个记录号 所以在读取数据时 只要知道记录号 便可以直接读取记录 随机文件的文件结构 3 二进制文件二进制文件 Binaryfile 是字节的集合 它直接把二进制码存放在文件中 除了没有数据类型或者记录长度的含义以外 它与随机访问很相似 二进制访问模式是以字节数来定位数据 在程序中可以按任何方式组织和访问数据 对文件中各字节数据直接进行存取 虽然这3种文件访问的数据类型不同 但应用程序访问它们的步骤却相似 使用Open语句打开文件 并为文件指定一个文件号 对文件进行任何I O操作之前 都必须经过这步操作 从文件中读取部分或全部数据到变量中 对变量中的数据进行处理 将处理后的数据保存回文件中 使用Close语句关闭文件 如果没有关闭文件 则会导致文件中部分或全部信息丢失 文件的基本操作 顺序文件的基本操作 在程序中对文件的操作 通常按3个步骤进行 一 顺序文件的打开与关闭 1 打开文件Open 文件名 For模式 As 文件号 Len 记录长度 1 模式OUTPUT 写操作INPUT 读操作APPEND 追加到文件未尾OPEN C VB SCORE txt FOROUTPUTAS 1 2 文件号1 511 可以用FreeFile函数获得下一个可利用的文件号 3 记录长度小于或等于32767的整数 它指定数据缓冲区的大小 例如 打开C VB SCORE 供写入数据 指定文件号为 1 例如 OPEN C TEMP A TXT FORInputAS 1OPEN C TEMP B TXT FOROutputAS 2OPEN C TEMP C TXT FORAppendAS 1 1 顺序文件的写操作向文件写入内容使用Print 语句或Write 语句 在程序中是数据输出 1 Print语句语法格式 PRINT 说明 文件号为以写方式打开文件的文件号 输出列表为用分号或逗号分隔的变量 常量 空格和定位函数序列 2 Write命令语法格式 Write Write语句采用紧凑格式 数据项之间插入 并给字符数据加上双引号 二 顺序文件的读写操作 例 Print与Write语句输出数据结果比较 PrivateSubForm Click DimStrAsString AnumAsIntegerOpen D Myfile dat ForAppendAs1Str ABCDEFG Anum 12345Print 1 Str AnumWrite 1 Str AnumClose 1EndSub 例 编程把一个文本框中的内容 以文件形式存入磁盘 假定文本框的名称为Mytxt 文件名为Myfile dat 方法1 把整个文本框的内容一次性地写入文件 Open Myfile dat ForOutputAs 1Print 1 Mytxt TextClose 1方法2 把整个文本框的内容一个字符一个字符地写入文件 Open Myfile dat ForOutputAs 1Fori 1Tolen Mytxt Text Print 1 Mid Mytxt Text i 1 NextiClose 1 2 顺序文件读操作从现存文件中读入数据 应以顺序Input方式打开该文件 然后使用Input 语句 LineInput 语句和Input 函数读入到程序变量中 使用格式如下 INPUT 文件号 变量列表把读出的每个数据项分别存放到所对应的变量 LINEINPUT 文件号 字符串变量读一行到变量中 主要用来读取文本文件 INPUT 读取字符数 文件号 读取指定的数量的字符 作为函数的返回值 三 关闭文件 Close语句使用格式如下 Close 文件号列表 其中 文件号列表为可选项 如 1 2 3 如果省略 则将关闭Open语句打开的所有活动文件 例如 Close 1 2 3Close 四 与读文件操作有关的几个函数 1 Lof函数LOF函数将返回某文件的字节数 例如 LOF 1 返回 1文件的长度 如果返回0值 则表示该文件是一个空文件 2 Loc函数Loc函数将返回在一个打开文件中读写的记录号 对于二进制文件 它将返回最近读写的一个字节的位置 3 Eof函数Eof函数将返回一个表示文件指针是否到达文件末尾的标志 如果到了文件末尾 Eof函数返回TRUE 1 否则返回FALSE 0 语法结构 DoWhileNotEof 文件号 语句Loop 例 编程将一文本文件的内容读到文本框假定文本框名称为txtTest 文件名为MYFILE TXT 可以通过下面三种方法来实现 方法1 一行一行读txtTest Text Open MYFILE TXT ForInputAs 1DoWhileNotEOF 1 LineInput 1 InputDatatxtTest Text txtTest Text InputData vbCrLfLoopClose 1 回车换行 方法2 一次性读txtTest Text Open MYFILE TXT ForInputAs 1txtTest Text Input LOF 1 1 Close 1方法3 一个个字符读DimInputDataasString 1txtTest Text Open MYFILE TXT ForInputAs 1DoWhileNotEOF 1 Input 1 InputDatatxtTest Text txtTest Text InputDataLoopClose 1 例 顺序文件的应用举例 本程序演示顺序文件的读写操作 程序运行示意如图所示 该程序可以打开一个顺序文件 将其内容存入文本框中进行修改 并可以保存修改 改成可以将文本框的内容在磁盘上建立一个顺序文件 顺序文件应用举例 14 2顺序文件 设置控件事件代码如下 PrivateSubCommand1 Click 本过程完成文件的读取功能DimFile1DimnextlineAsStringCommonDialog1 Filter TextFiles txt txt 指定默认文件类型CommonDialog1 ShowOpen 调用以CommonDialog1控件打开的对话框 以输入要打开的文件名File1 CommonDialog1 filename 将打开对话框提供的文件名赋予变量File1 顺序文件应用举例 OpenFile1ForInputAs 1 按读方式打开 下面循环可以用语句 Text1 text Input LOF 1 1 替代DoUntilEOF 1 将打开文本文件的内容赋予文本框LineInput 1 nextlineText1 Text Text1 Text nextline Chr 13 Chr 10 LoopClose1 关闭打开的文件EndSub PrivateSubCommand2 Click 本过程完成将文本框的内容写入文件中Dimcontents File1CommonDialog1 showSave 调用CommandDialog1控件的保存对话框 以提供建立文件的文件名File1 CommonDialog1 filenameOpenFile1ForOutputAs 1 以写方式打文件Contents Text1 TextText1 Text 清除文本框中的内容Print 1 Contents 往文件中写入内容Close1EndSubPrivateSubCommand3 Click UnloadMe 退出程序EndSub 14 3随机文件 在文件中以顺序文件方式进行存取数据很方便也很常用 但是当需要大量查找或修改文件中的数据时会很困难 而这时采用随机文件方式存取数据就显得比较方便 随机文件的每一个数据项都有相同的长度 它的数据项通常称做记录 随机文件是以记录为单位的 每条记录都被赋予了记录号以便查找 应用程序可以根据记录号直接读取随机文件中的任意记录 而无须由前至后逐个读取记录 对随机文件的存取是以记录为单位进行的 每个记录包括一个或多个字段 具有一个字段的记录对应于任一标准类型 比如整数或定长字符串 具有多个字段的记录对应于用户自定义类型 1 声明记录类型变量 在打开一个文件进行随机访问之前 应定义一个类型 该类型对应于该文件包含或将包含的记录 语法格式为 Private Public Type自定义类型名元素名Astype 元素名Astype EndType 例如 声明一个学生自定义类型 TypeStudentNumberAsString 2 学号 宽度为2字节NameAsString 8 姓名 宽度为8字节ScoreAsInteger 成绩 宽度为2字节EndType 13 3随机文件 在定义与记录对应的类型以后 应接着声明程序需要的任何其他变量 用来处理作为随机访问而打开的文件 如 Publicstudent1 student2Asstudent 定义记录变量PublicstnumeAsInteger 定义存放当前记录号的变量PublicLastRecordAsLong 存放最后一条记录的编号 13 3随机文件 例如 DimLastrecordAsLong 存放最后一个记录的编号Dimstudent1AsstudentDimRecLengthasLongRecLength Len student1 计算每条记录的长度FileNum FreeFile 取出下一个可用文件编号Open School dat ForRandomAsFileNumLen RecLength 用Open语句打开新文件LastRecord LOF FileNum RecLength 存放文件中记录的个数 13 3随机文件 2随机文件的操作 一 打开格式 Open 文件名 ForRandomAs 文件号 Len 记录长度 二 读操作1 格式 Get 文件号 记录号 变量名2 功能 将一个已打开的磁盘文件的一条记录的内容读入一个变量之中 忽略记录号 则读出当前记录后的那一条记录 三 写操作1 格式 Put 文件号 记录号 变量名2 功能 将一个变量的数据写入磁盘文件中 将一个记录变量的内容写到指定的记录位置处 忽略记录号 则表示在当前记录后的位置插入一条记录 例题 创建一个随机文件 然后读出其中内容 显示在文本框中 在窗体中创建一个文本框text1 两个命令按钮command1和command2 点击command1 写入文件 时创建文件 点击command2 读出文件 时把文件中的数据读出来 显示在文本框中 下面是程序代码 自定义数据类型 记录类型 在窗体的通用代码段中声明 PrivateTypeRecordIDAsIntegerNameAsString 20EndType 创建文件的代码 Command1的单击事件PrivateSubCommand1 Click DimMyRecordAsRecordOpen TESTFILE ForRandomAs 1Len Len MyRecord Forrecordnumber 1To5MyRecord ID recordnumberMyRecord Name MyName recordnumberPut 1 recordnumber MyRecordNextrecordnumberClose 1EndSub 读出文件的代码 Command2的单击事件 PrivateSubCommand2 Click DimMyRecordAsRecordOpen TESTFILE ForRandomAs 1Len Len MyRecord WhileNotEOF 1 Get 1 MyRecordText1 Text Text1 Text Chr 10 Chr 13 Chr 10 Chr 13 MyRecord ID MyRecord NameWendClose 1EndSub 二进制文件是一个字节流 文件系统并不解释各字节的意义 解释工作由具体的应用程序完成 以二进制方式访问文件有下述特点 可以直接访问文件中的所有数据 由应用程序根据需要解释数据的意义 访问文件的语句不更改原始数据的所有内容 二进制文件每一次读写是以字节为单位对数据进行访问操作的 它允许用户读写或修改文件中的任何字节信息 当把二进制数据写入文件中时 使用Byte数据类型的数组 而不是String变量 String被认为包含的是字符 而二进制型数据可能无法正确地存储在String变量中 当要保持文件的尺寸尽量小时 应使用二进制文件 13 4二进制文件 一 二进制文件的打开Open 文件名 ForBinaryAs 文件号二 二进制文件的写操作Put 文件号 位置 变量名写入长度等于变量长度的数据 三 二进制文件的读操作GET 文件号 位置 变量名从指定位置开始读出长度等于变量长度的数据存入变量中 数据读出后移动变量长度位置 如果忽略位置 则表示从文件指针所指的位置开始读出数据 数据读出后移动变量长度位置 13 4二进制文件 例题文件复制DimcharAsByteDimFileNum1 FileNum2asIntegerFileNum1 FreeFileOpen C STUDENT DA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论