




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文件是存储在外部介质 如磁盘 上的以文件名标识的数据的集合 存储在磁盘上的文件称为磁盘文件 与计算机相连的设备称为设备文件 这些文件都不在计算机内 统称为外部文件 为访问存放在外部介质上的数据 应先按文件名找到所指定的文件 然后再从该文件中读取数据 第8章文件 8 1文件的基本概念 8 2文件的打开与关闭 8 3文件的读写操作 8 4常用的文件操作语句和函数 8 5文件系统控件 退出 8 1文件的基本概念 8 1 1文件说明文件说明指的是文件的命名规则 在VB中 文件说明的一般形式为 设备名 文件所在的路径名 文件引用名 在VB中 文件说明没有大小写之分 8 1 2文件结构和分类 1 文件结构 字符是构成文件的最基本单位 字段或域由若干个字符组成 用来表示一项数据 记录就是一组有相互关系的字段 文件是记录的集合 表8 1用户电脑购置清单 2 文件种类 1 顺序文件 文件中的数据是按顺序组织的文本行 每行 即一个记录 的长度可以变化 用 换行 字符作为分隔符号 在顺序文件中 只知道第一个记录的存放位置 其他的记录无从知晓 当要查找某项数据时 只能从文件的开头 一个记录一个记录的顺序查找 直到找到所需记录为止 在VB中 按照文件的存取方式和组成 把文件分为顺序文件 随机文件和二进制文件 在这三类文件中 数据的存取方法是不同的 2 随机文件 随机文件有时又称随机存取文件或直接存取文件 是由一组长度相等的记录组成的 一般它们以二进制形式存放 每个记录包含一个或多个字段 如果是只有一个字段的记录 可以是任何一种标准数据类型 如整数或者定长字符串 如果具有多个字段的记录 则该记录对应于用户自定义类型 对于随机文件 可以根据文件中的记录号访问任何一条记录 无须按顺序进行 在随机文件中 每个记录是固定的 记录中每个字段的长度也是固定的 且每个记录都有一个记录号 读写数据时 只需指定记录号即可 且可以同时进行读写操作 数据的存取灵活 方便 速度快 但是占用的空间大 数据组织复杂 二进制文件 根据数据的编码方式 文件可以分为ASC 文件和二进制文件 ASC 文件即文本文件 这种文件以ASC 方式保存文件 可以使用字处理软件建立和修改 但必须以纯文本方式保存 二进制文件以二进制方式保存文件 以字节数来定位数据 没有固定的格式 允许程序按所需的任何方式组织和访问数据 对文件中的各个字节数据进行存取访问和改变 二进制文件不能用普通的字处理软件进行编辑 但占用的空间较小 任何形式的文件都可以使用二进制模式进行访问 8 2文件的打开与关闭 8 2 1文件的打开 8 2 2文件的关闭 返回 退出 8 2 1文件的打开 在VB中 使用Open语句打开或建立文件 为文件的输入输出分配缓冲区 并确定缓冲区所使用的存取方式 其语法格式为 Open文件说明 For方式 Access存取类型 锁定 As 文件号 Len 记录长度 其中 文件说明 必要 字符串表达式 指定文件名 该文件名可能还包括目录 文件夹及驱动器 Access 可选 关键字 说明打开的文件可以进行的操作 有只读 只写和读 写操作 方式 必要 关键字 锁定 可选 关键字 说明限定于其它进程打开的文件的操作 记录长度 可选 小于或等于32767 字节 的一个数 对于用随机访问方式打开的文件 该值就是记录长度 对于顺序文件 该值就是缓冲字符数 以下是使用Open语句的不同用法来实现文件的输出与输入的范例 1 以顺序输入模式打开client1文件 若要以其他方式打开文件 必须先关闭文件 Open client1 ForInputAs 1 2 以只写的二进制方式打开文件 若要以其他方式打开文件 必须先关闭此文件 Open client1 ForBinaryAccessWriteAs 1 3 下列代码以随机方式打开client1文件 文件中含有用户自定义数据类型Record的记录 若要以其他方式打开文件 必须先关闭此文件 TypeRecord 定义用户自定义数据类型 clientIDAsIntegerclientNameAsString 16EndTypeDimMyRecordAsRecord 声明变量 Open client1 ForRandomAs 1Len Len MyRecord 4 下列代码以顺序输出方式打开文件 任何过程都可以读写该文件 若要以其他方式打开文件 必须先关闭此文件 Open client1 ForOutputSharedAs 1 5 下列代码以只读的二进制方式打开文件 其他过程不可以读该文件 Open client1 ForBinaryAccessReadLockReadAs 1 6 用随机方式打开C盘上clients文件夹下的client1文件 记录长度为512字节 Open c clients client1 ForRandomAs 1Len 512 8 2 2文件的关闭 Close语句用于关闭使用Open语句所打开的输入 输出文件 其语法格式为 Close 文件号 文件号 若省略Close关键字后的内容 则将关闭Open语句打开的所有活动文件 即使没有Close语句 当程序结束时 也将自动关闭所有打开的文件 但是Close语句还是必要的 如果不使用Close语句 可能会使得某些需要写入的数据不能从内存写入文件中 当打开的文件或设备正在输出时 执行Close语句并不会使输出信息的操作中断 8 3 1顺序文件的读写操作 1 写操作 顺序文件的写操作使用Print 语句或Wrie 语句实现 1 Print 语句 格式 Print 文件号 outputlist 功能 将格式化显示的数据写入顺序文件中 8 3文件的读写操作 例8 1 Print 语句实例 使用Print 语句将数据写入一个文件Open c src txt ForOutputAs 1 打开输出文件Print 1 学生成绩表 将文本数据写入文件Print 1 将空白行写入文件 Print 1 姓名 Tab 成绩 Tab 备注 数据写入三个区Print 1 王维 95 以空格隔开两个字符串Print 1 黄梅 0 下一个Print 语句将不换行Print 1 Spc 15 舞弊 在字符串之前写入十五个空格Print 1 Tab 5 输入完毕 在第5列输出字符串Close 1如果要将文本框的内容一次性写入文件中 可以采用如下方法 Open c Mytext1 txt ForOutputAs 1Print 1 Text1 TextClose 1如果要将文本框的内容逐字地写入文件中 可以采用如下方法 Open c Mytext2 txt ForOutputAs 1Fori 1toLen Text1 Text Print 1 Mid Text1 Text i 1 NextiClose 1 图8 1Print 语句输出的内容 2 Write 语句 格式 Write 文件号 outputlist 功能 将数据写入顺序文件 与Print 语句不同 当要将数据写入文件时 Write 语句会在数据项之间插入逗号 并加上双引号 没有必要在列表中键入明确的分界符 Write 语句在将outputlist中的最后一个字符写入文件后会插入一个新行字符 即回车换行符 Chr 13 Chr 10 图8 2Write 语句输出的内容 2 读操作 1 Input 语句 格式 Input 文件号 变量列表 功能 从已打开的顺序文件中读出数据 并将数据指定给用逗号分界的变量列表中的变量 2 LineInput 语句 格式 LineInput 文件号 字符串变量 功能 从已打开的顺序文件中读出一行并将它分配给字符串变量 3 Input函数 格式 Input 读取的字符数 文件号 功能 读取以Input或Binary方式打开的文件中的指定数目的字符 例8 2 将图8 2中所示文本读到文本框中 PrivateSubCommand1 Click Text1 Text Open c src txt ForInputAs 1DoWhileNotEOF 1 LineInput 1 mydataText1 Text Text1 Text mydata vbCrLfLoopClose 1EndSub 如果将代码进行如下改动 则可以将文件的内容逐字符地读入文本框中 运行结果同图8 3 PrivateSubCommand1 Click Text1 Text Open c src txt ForInputAs 1DoWhileNotEOF 1 inputdate Input 1 1 Text1 Text Text1 Text inputdateLoopClose 1EndSub 图8 3将顺序文件的内容读到文本框中 则程序运行时 单击Command1按钮 文本框中显示的内容见图8 3所示 注意设计时将Text1的MultiLine属性设置为True 8 3 2随机文件的读写操作 1 写操作 随机文件的写操作使用Put语句 其功能为将一个变量的数据写入磁盘文件中 语法格式为 Put 文件号 recnumber varname 2 读操作 随机文件的读操作使用Get语句 其功能是将一个已打开的磁盘文件的一条记录的内容读入一个变量之中 语法格式为 Get 文件号 recnumber varname 3 随机文件操作实例在上面顺序文件的实例2中 每次新建用户窗口后 变量clientnumber都清空 保存每个窗口中文本框的内容时 并没有用到变量clientnumber 而是将整个文本框的内容整体写到文件中 这样很不方便以后的查找等操作 可以这样修改程序 每次单击子窗口上的 新建 菜单项时 将提示是否保存用户选择 如果需要保存 则调用保存过程saver将clientnumber变量保存在随机文件中 然后清除文本框并将变量clientnumber清零 如果不必要保存 则直接并将变量clientnumber清零 清空文本框 为程序增加查找功能 1 将父窗体 新建 菜单单击事件代码改为 PrivateSubNew Click Form1 showEndSub 2 将子窗体 新建 菜单单击事件代码改为 PrivateSubNew Click clientnumber clientname clientnumber clientcpu 将所有记录变量清空Flag MsgBox 要保存用户资料吗 vbYesNoCancel SelectcaseFlagCasevbYes Savepro 调用Savepro过程保存客户资料Text1 CasevbNoText1 EndSelectEndSub 3 将savepro过程代码改为 PublicSubsavepro MDIForm1 CommonDialog1 ShowOpenFileName MDIForm1 CommonDialog1 FileNameOpenFileNameForRandomAs 1Len Len clientnumber 将记录变量clientnumber写入文件recordnumber LOF 1 Len clientnumber 1Put 1 recordnumber clientnumberClose 1EndSub 4 编写查询过程 即 编辑 查找 菜单项单击事件 代码 PrivateSubTsearch Click DimnameAsStringname Trim Box 输入要查找的客户姓名 MDIForm1 CommonDialog1 ShowOpenFileName MDIForm1 CommonDialog1 FileNameOpenFileNameForRandomAs 1Len Len clientnumber recordnumber LOF 1 Len clientnumber 1Fori 1TorecordnumberGet 1 i clientnumberIfTrim clientnumber clientname nameThentextlist 找到查找的客户 调用textlist过程在Form1的文本框中显示客户信息ExitFor 退出循环EndIfNextClose 1Ifi recordnumberThenMsgBox 没有您要查找的客户资料 找不到要查找的客户信息EndSub 1 FileCopy语句 格式 FileCopysource destination 功能 复制一个文件 FileCopy语句不能复制一个已打开的文件 如果想要对一个已打开的文件使用FileCopy语句 则会产生错误 例如 将含有数据的文件C盘下client1中的内容复制为到文件D盘下的oldclient1中 DimSourceFile DestinationFileSourceFile C client1 指定源文件名 DestinationFile D oldclient1 指定目的文件名 FileCopySourceFile DestinationFile 将源文件的内容复制到目的文件中 8 4常用的文件操作语句和函数 2 Kill语句 格式 Killpathname 功能 从磁盘中删除文件 例如 PrivateSubCommand1 Click h MsgBox 确实要删除文件吗 vbYesNo 请确认 Ifh vbYesThenKill c client1 txt EndSub 3 Name语句 格式 NameoldpathnameAsnewpathname 功能 重新命名一个文件 目录 或文件夹 Name语句不能创建新文件 目录或文件夹 如果在一个已打开的文件上使用Name 将会产生错误 必须在改变名称之前 先关闭打开的文件 如果newpathname所指定的路径存在且与oldpathname指定的路径不同 则Name语句将文件移动到新的目录下 但不能将文件移动到不同的驱动器中 例如 Name c client1 txt As c client2 txt 将文件client1 txt更名为client2 txtName c client2 txt As c New client3 txt 将文件C盘下的client2 txt移动到C盘的New文件夹中并更名为client3 txt 4 ChDrive语句 格式 ChDrivedrive 功能 改变当前驱动驱的位置 字符串表达式drive的首字符指定将要改变到的驱动器名称 5 ChDir语句 格式 ChDirpath 功能 改变默认目录位置 字符串表达式path指定将要改变到的默认目录名称 改变默认目录并不改变默认驱动驱 6 MkDir语句 格式 MkDirpath 功能 创建一个新的目录 7 RmDir语句 格式 RmDirpath 功能 删除一个存在的 空的目录 8 Loc函数 格式 Loc 功能 返回一个Long型数 返回由文件号指定的文件的当前读 写位置 Filenumber为Open语句中使用的文件号 9 LOF函数 格式 LOF 功能 返回一个Long型数 表示用Open语句打开的 文件号filenumber所对应的文件的大小 该大小以字节为单位 对于尚未打开的文件 可以使用FileLen函数得到其长度 例如 在C盘下的文件client1中含有数据 ThisIsclient1 sInformation 程序运行时单击Command1命令按钮 将在窗体上显示数据33 号为2字节 PrivateSubCommand1 Click DimFileLengthOpen c client1 ForInputAs 1 打开文件 FileLength LOF 1 取得文件长度 Close 1 关闭文件PrintFileLengthEndSub 10 EOF函数 格式 EOF filenumber 功能 返回Boolean值True或False 表明是否已经到达为以随机方式或顺序方式打开的文件的结尾 EOF函数的一般用法为 DoWhileNotEOF filenumber 读 写操作Loop 8 5文件系统控件 文件系统控件有三种 驱动器列表框 DriveListBox 目录列表框 DirListBox 和文件列表框 FileListBox 图8 4驱动器列表框 目录列表框和文件列表框应用实例 1 重要属性 表8 2列出了三个文件系统控件的重要属性 在表8 2列出的属性中 FileName和Pattern属性可以在设计时进行设置 在运行时Pattern属性的值的改变将产生一个Pattern Change事件 Drive和Path属性只能在运行时加以引用和设置 在设计时则不能进行设置 在运行时Path属性的值的改变将产生一个Path Change事件 引用FileName时只能返回选定的文件名 只有加上Path属性才能得到完整的文件路径 表8 2文件系统控件的重要属性 表8 3文件系统控件的重要事件 2 重要事件 3 文件系统控件应用实例图8 6所示应用程序的功能是 三个文件系统控件是同步的 即选择驱动器列表框中的驱动器时 在目录列表框中显示当前驱动器下的文件夹 在文件列表框中显示目录列表框中打开的文件夹中的文件 组合框控件用于限制文件列表框显示的文件类型 当单击文件列表框的文件名时 在右下的列表框中显示文件列表框中选定的文件名称 当双击文件列表框的可执行文件名时 将运行双击的文件 1 界面设计根据要求 在Form1窗体上绘制三个文件系统控件 驱动器列表框控件Drive1 目录列表框控件Dir1和文件列表框控件File1 一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议子女抚养权法律咨询合同
- 煤矿股权转让与绿色矿山建设责任书
- 行政合同在招投标活动中的法律属性及风险防控措施
- 私有房屋买卖合同含房屋权属证明及法律效力确认
- 退役士兵培训宣传
- 猫咪拼音游戏课件
- 干部培训开班流程
- 贷款产品知识培训
- 机电职业技术学院试题及答案
- 邮储银行2025重庆市秋招英文面试题库及高分回答
- 新转型九年一贯制学校三年发展规划(2025年-2028年)
- 期神丁鹏期货交易课件
- 反走私课件教学课件
- 大货车闯红灯安全培训课件
- 2025年人教版三年级数学上册全册教案
- (2025秋新版)苏教版科学三年级上册全册教案
- 《中国人首次进入自己的空间站》导学案 部编语文八年级上册
- 四川省土地开发项目预算定额标准
- 2025年小儿惊厥的应急预案演练脚本
- 2025年秋期新课标人教版四年级上册数学全册教案(核心素养教案)
- 郑和下西洋课件
评论
0/150
提交评论