已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第七讲文件及使用 2 7 1文件的概念 文件 存放在某种存储设备上的一组数据集合 由文件名唯一标识 文件由若干记录组成 没有记录的文件为空文件 文件操作 读 写 以记录为单位 从文件中一次输入一个记录 向文件中一次输出一个记录 通过READ和WRITE语句从文件中输入输出数据 文件分外部文件和内部文件两种文件 3 外部文件 连接在计算机主机上的一类设备 如 键盘 显示器 打印机等 或存放在外部存储器上的文件 外部文件通过一个符合windows命名规则的文件名进行标识 外部文件特点 能长期保存大批量数据 在程序中使用外部文件 必须先用OPEN语句为外部文件指定设备号 建立外部文件与设备号之间的联系 如 OPEN 1 FILE exam2 in OPEN 2 FILE exam2 out READ 1 score I I 1 N WRITE 2 学生成绩有 4 内部文件 存放在内存储器上的文件 通过一个字符变量进行标识 内部文件特点 保存小批量数据 不能长期保存 内部文件作用 一般用于少量二进制数据与字符型数据相互转换 以及字符串和合并或截取 如 PROGRAMexam4CHARACTER 40str1 str2str1 125 250 375 READ str1 i j kWRITE str2 100 i j k i j k100FORMAT i I3 j I3 k I3 i j k I3 write i j kwrite str2END 5 外部文件也称磁盘数据文件 简称文件 有三种存储格式和两种存取方式 根据不同存储格式和存取方式分类 有六种文件类型 有格式顺序存取文件 有格式直接存取文件 无格式顺序存取文件 无格式直接存取文件 二进制直接存取文件 二进制顺序存取文件 7 2外部文件分类 6 存储格式是指文件中数据的存储规则和组织结构 有三种存储格式 有格式 无格式和二进制 有格式存储格式 文件中数据以字符形式 ASCII码 存放 以回车符 CR 和换行符 LF 作为字符行的结束标志 在OPEN语句中用FORM选项指定 FORMATTED 可缺省 OPEN UNIT 1 FILE exam2 in FORM FORMATTED OPEN UNIT 2 FILE exam2 out 无格式存储格式 文件中数据以二进制形式存放 在OPEN语句中用FORM选项指定 UNFORMATTED OPEN UNIT 1 FILE exam2 in FORM UNFORMATTED OPEN UNIT 2 FILE exam2 out FORM UNFORMATTED 二进制存储格式 文件中数据以真正的二进制编码形式 在内存的存储形式 存放 在OPEN语句中用FORM选项指定 BINARY OPEN UNIT 1 FILE exam2 in FORM BINARY OPEN UNIT 2 FILE exam2 out FORM BINARY 7 存取方式是指对文件中数据读写方式 也称文件访问方式 有两种存取方式 顺序存取和直接存取 内部文件只有顺序存取 外部文件可顺序存取 也可直接存取 顺序存取文件记录长度可不同 直接存取文件记录长度相同 顺序存取方式 在进行存取操作时只能从第1个记录开始按存储顺序依次进行 即在程序中要读写第N个数据时 必须先读写前面的N 1个数据 读写时可使用REWIND或BACKSPACE语句改变文件指针位置 读写位置 在OPEN语句中用ACCESS选项指定 SEQUENTIAL 对有格式文件可缺省 OPEN UNIT 1 FILE exam2 in ACCESS SEQUENTIAL OPEN UNIT 2 FILE exam2 out 直接存取方式 在进行存取操作时可以读写任意一个记录 数据 也称随机存取方式 OPEN UNIT 1 FILE exam2 in ACCESS DIRECT RECL 40 OPEN UNIT 2 FILE exam2 out ACCESS DIRECT RECL 40 8 每一个文件都有一个隐含的指针 称为文件指针 文件指针指向文件中的一个记录 来控制文件的当前读写位置 文件打开后 文件指针指向第一个记录 文件指针指向的记录称为当前记录 文件指针指向第一个记录位置 称为文件的起始位置 文件指针指向最后一个记录位置 称为文件的结束位置 对于顺序文件 在读写前 要对文件指针进行定位 对于直接文件 在读写过程中 要对文件指针进行定位 在文件数据的读写过程中 只对文件指针指向的当前记录进行读写 存取 9 7 3文件的基本操作 在读写文件数据前 需通过OPEN语句将文件打开 建立逻辑设备符 文件编号 与磁盘上的外部文件之间的关系 一般格式 OPEN UNIT FILE ACCESS FORM RECL ERR BLOCKSIZE CARRIAGECONTROL DELIM BLANK ACTION IOFOCUS IOSTAT PAD POSITION SHARE STATUS 10 文件读写操作结束后 可通过CLOSE语句将文件关闭 取消逻辑设备符 文件编号 与磁盘上的外部文件之间的关系 CLOSE语句可缺省 一般格式 CLOSE Unit ERR IOSTAT STATUS 11 文件在操作过程中 可强制在文件内当前记录位置后置文件结束标志 使用ENDFILE语句可强制设置文件结束标志 文件结束标志后的记录被清除 一般格式 ENDFILE UNIT ERR IOSTAT 12 文件打开后 从文件输入数据 使用READ语句完成数据输入 一般格式 READ UNIT FMT NML ADVANCE END EOR ERR IOSTAT REC SIZE 13 文件打开后 向文件输出数据 使用WRITE语句完成数据输出 一般格式 WRITE UNIT FMT NML ADVANCE ERR IOSTAT REC 14 文件打开后 在文件的存取操作过程中有时要查询文件的有关状态和属性 以便决定某种操作 使用INQUIRE语句完成属性查询 一般格式 INQUIRE UNIT unit FILE file IOLENGTH iolength ACCESS access SEQUENTIAL sequential DIRECT direct FORM form FORMATTED formatted UNFORMATTED unformatted BINARY binary ACTION action MODE mode READ read WRITE write READWRITE readwrite BLANK blank BLOCKSIZE blocksize CARRIAGECONTROL carriagecontrol DELIM delim ERR err EXIST exist IOFOCUS iofocus IOSTAT iostat NAME name NAMED named RECL recl NEXTREC nextrec RECORDTYPE recordtype NUMBER number PAD pad POSITION position SHARE share OPENED opened 15 文件打开后 在读写操作中有时要将当前文件指针位置指向文件起始位置 称为反绕 类似倒带操作 以便从起始位置进行读写操作 使用REWIND语句完成文件指针反绕操作 一般格式 REWIND Unit ERR IOSTAT 16 文件打开后 在文件的存取操作过程中有时要将当前文件指针位置向后回退一个记录位置 使用BACKSPACE语句完成文件指针回退操作 一般格式 BACKSPACE Unit ERR IOSTAT 17 外部设备 键盘 显示器 终端 打印机 串行口 并行口等设备 象使用外部文件一样使用这些外部设备 每一个外部设备都有一个设备名 类似于文件名 如表10 1所示 下面给出一些使用外部设备的OPEN语句 连接一台打印机 程序中可从打印机输出数据 设备号为1OPEN UNIT 1 FILE PRN 连接一个串行口 程序中可从串行口输出数据 设备号为2OPEN UNIT 2 FILE COM1 连接一个并行口 程序中可从并行口输出数据 设备号为3OPEN UNIT 3 FILE LPT1 18 有格式顺序文件 具有 FORMATTED 和 SEQUENTIAL 属性的文件 有格式顺序文件可用任何文本编辑器或OPEN WRITE语句创建 属于可视化文件 有格式顺序文件是由若干文本行组成 每个文本行是一个记录 记录由回车符 CR 和换行符 LF 结束 回车符CR ODH 和换行符LF OAH 是记录的结束标志 每个记录长度 字节数 每个字符占一个字节 可以不同 默认最大记录长度为132个字节 可通过RECL选项指定最大记录长度 有格式顺序文件读写操作与键盘 显示器的读写操作类似 不同的是需要用OPEN语句打开文件 指定设备号 在READ和WRITE语句中指定设备号 而不是星号 19 PROGRAMchaper1271INTEGER A 10 sum 0 ave 打开一数据文件 先用文本编辑器创建 默认是一个有格式顺序存取文件 数据文件中有10个整数 第1行5个 第2行2个 第3行3个 数据文件有3个记录行 每个记录行长度不同OPEN 11 FILE input1 dat READ 11 A I I 1 10 按表控格式从数据文件中输入10个数 READ 11 A 1 A 2 A 3 A 4 A 5 可用3个READ语句分3个行输入 READ 11 A 6 A 7 READ 11 A 8 A 9 A 10 CLOSE 11 DOI 1 10sum sum A I ENDDOave sum 10 打开一个最大记录长度为25的有格式顺序存取文件OPEN 12 FILE input2 dat RECL 25 WRITE 12 10个数之和为 I5 sum 输出一个记录行 记录长度为19WRITE 12 10个数平均值为 I5 ave 输出一记录行 记录长度为21WRITE 程序运行正常结束 END 20 具有 FORMATTED 和 DIRECT 属性的文件称为有格式直接存取文件 有格式直接存取文件可用文本编辑器创建 也可在程序中通过OPEN和WRITE语句创建 有格式直接存取文件可用文本编辑器显示 浏览 修改 创建 文件中不能用回车符和换行符分隔记录 有格式直接存取文件是由若干文本段组成 每个文本段是一个记录 记录没有结束标志和行的概念 每个记录长度 字节数 每个字符占一个字节 相同 可通过RECL选项指定记录长度 有格式直接存取文件不能按顺序存取方式打开 进行顺序存取 而只能按直接存取方式打开 按记录号任意存取记录 程序示例 21 PROGRAMchaper1272INTEGER A 10 5 7 4 8 12 2 10 3 9 11 INTEGER sum 0 ave 打开一数据文件 设置一个有格式直接存取文件 将10个数分2个记录写入文件 数据文件生成2个记录 每个记录行长度相同 记录长度为25OPEN 11 FILE input21 dat FORM FORMATTED ACCESS DIRECT RECL 25 WRITE 11 5I5 REC 1 A I 10 I 1 5 按格式说明将头5个数写入第1个记录WRITE 11 5I5 REC 2 A I 10 I 6 10 按格式说明将后5个数写入第2个记录READ 11 5I5 REC 2 A I I 6 10 按格式说明从第2个记录中读取后5个数READ 11 5I5 REC 1 A I I 1 5 按格式说明从第1个记录中读取头5个数DOI 1 10sum sum A I ENDDOave sum 10 打开一个最大记录长度为22的有格式直接存取文件OPEN 12 FILE input22 dat FORM FORMATTED ACCESS DIRECT RECL 22 WRITE 12 10个数之和为 I5 REC 1 sum 输出1记录行 记录长度为22WRITE 12 10个数平均值为 I5 REC 2 ave 输出1记录行 记录长度为22WRITE 12 A REC 3 程序运行正常结束 输出一个记录行 记录长度为22END 22 具有 UNFORMATTED 和 SEQUENTIAL 属性的文件称为无格式顺序存取文件 无格式顺序存取文件不能用文本编辑器创建 能在程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年阿尔山职业学院单招综合素质考试题库及参考答案详解(综合卷)
- 2024年菏泽家政职业学院单招职业技能考试模拟试卷附参考答案详解【典型题】
- 2025年淮阳伏羲文化学院单招综合素质考试题库含完整答案详解【各地真题】
- 2027年拉脊专修学院高职单招职业技能考试模拟试卷及参考答案详解(黄金题型)
- 2024年牙山职业学院单招综合素质考试模拟试卷及参考答案详解【培优A卷】
- 2026年平顶山尧山职业学院高职单招职业技能考试模拟试卷及参考答案详解(B卷)
- 2025年长白山文旅职业学院单招综合素质考试模拟试卷必考附答案详解
- 2027年花果山职业学院高职单招职业技能考试模拟试卷带答案详解(A卷)
- 2025年洞庭商贸职业学院单招综合素质考试模拟试卷及参考答案详解(新)
- 2025年四川工业科技学院专科单招综合素质考试题库带答案详解(综合题)
- 神经纤维瘤病合并咖啡斑
- 慢性牙髓炎病历范文
- 建设项目环境影响评价分类管理名录2026版
- 湖南长沙2019-2021年中考满分作文36篇
- 2025携程旅行年度营销通案
- 软土地基在不同地区的几种处理方法
- GB/T 7659-2025焊接结构用铸钢件
- 学堂在线 中国建筑史-史前至两宋辽金 章节测试答案
- 卫健委日间手术管理制度
- 年产200吨高纯金属铯铷项目报告书
- 《正比例函数图象及性质》课件
评论
0/150
提交评论