使用文件可以将应用程序所处理的数据以文件的形式保存起来教学文案

上传人:yulij****0329 文档编号:139794639 上传时间:2020-07-24 格式:PPT 页数:43 大小:296.50KB
返回 下载 相关 举报
使用文件可以将应用程序所处理的数据以文件的形式保存起来教学文案_第1页
第1页 / 共43页
使用文件可以将应用程序所处理的数据以文件的形式保存起来教学文案_第2页
第2页 / 共43页
使用文件可以将应用程序所处理的数据以文件的形式保存起来教学文案_第3页
第3页 / 共43页
使用文件可以将应用程序所处理的数据以文件的形式保存起来教学文案_第4页
第4页 / 共43页
使用文件可以将应用程序所处理的数据以文件的形式保存起来教学文案_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《使用文件可以将应用程序所处理的数据以文件的形式保存起来教学文案》由会员分享,可在线阅读,更多相关《使用文件可以将应用程序所处理的数据以文件的形式保存起来教学文案(43页珍藏版)》请在金锄头文库上搜索。

1、第 8 章,数据文件,文件是指存放在外存储器(如磁盘)上的信息集合 使用文件可以将应用程序所处理的数据以文件的形式保存起来 程序文件和数据文件 本章主要内容 数据文件概述 顺序文件 随机文件 文件基本操作 文件系统对象(FSO)简介,第8章 数据文件,8.1.1 数据文件的结构 数据文件由记录组成,记录由字段组成,字段由字符组成,8.1 数据文件概念,(1)顺序文件:文本文件。文件中的记录按顺序一个接一个地排列。无法灵活地随意存取它。只适用于有规律的、不经常修改的数据 (2)随机文件:随机文件的每一个记录都有固定的长度,每一个记录都有记录号,这种文件的特点是允许用户存取文件中任一个记录。可以同

2、时进行读或写操作存入和读出速度较快,数据容易更新 (3)二进制文件:可理解为长度为1的特殊的随机文件,8.1.2 文件类型,1. 打开文件(Open) Open 文件名 For 模式Access 存取类型锁定 As #文件号Len=记录长度 说明:(1)文件名; (2) 模式用于指定文件访问的方式,包括: Append从文件末尾添加 Binary二进制文件 Input顺序输入 Output顺序输出 Random随机存取方式 (3)文件号(或称文件缓冲区) (4)存取类型:访问文件的类型,为Read(只读)、Write(只写)、 Read Write(读写) (5)锁定:限制其他用户或其他进程对

3、文件进行读写操作 Shared(共享)、Lock Read(禁止读)、Lock Write(禁止写)、 Lock Read Write(禁止读写) (6)Len:用来指定每个记录的长度(字节数) 示例: Open d:cj1.dat For Output As #1,8.1.4 文件的打开和关闭,2. 关闭文件(Close) 打开的文件使用完后必须关闭。 关闭文件的语句格式: Close # 文件号1 ,# 文件号2 示例: Close #1,1. FreeFile函数 格式:FreeFile 功能:返回一个在程序中没有使用的文件号 示例: FileNo=FreeFile Open D:MyF

4、ile.txt For Output As FileNo 2. Seek语句和Seek函数 Seek函数的格式:Seek(文件号) 功能:返回文件指针的当前位置 对于随机文件,Seek函数返回指针当前所指的记录号。对于顺序文件,Seek函数返回指针所在的当前字节位置(从头算起的字节数) Seek语句的格式:Seek #文件号,位置 功能:将指定文件的文件指针设置在指定位置,以便进行下一次读或写操作 对于随机文件,“位置”是一个记录号;对于顺序文件,“位置”表示字节位置,8.1.5 相关的语句和函数,3. Eof函数 格式:Eof(文件号) 功能:测试与文件号相关的文件是否已达到文件的结束位置。

5、如果是,函数值为真值,否则为假值。 使用Eof是为了避免在文件结束处读取数据而发生错误 4. Lof函数 格式:Lof(文件名) 功能:返回与文件号相关的文件的总字节数 5Loc函数 格式:Loc(文件号) 功能:返回与文件号相关的文件的当前读写位置,8.2.1 顺序文件的写入操作 以Output或Append方式打开文件,然后使用Write#语句或Print#语句将数据写入文件中 1. Write语句 格式:Write #文件号 ,表达式表 功能:将表达式的值写到与文件号相关的顺序文件中 每个Write语句向顺序文件写入一个记录(不定长),它会自动地用逗号分开每个表达式的值。给字符串加上双引

6、号 在最后一个字符写入后,插入一个回车换行符(Chr(13) + Chr(10),以此作为记录结束的标记。 示例:Write #1, Good Afternoon, 1998,8.2 顺序文件,把150的50个整数,以及这些数中能被7整除的数分别存入两个文件中,文件名为num1和num2,文件存放在VB缺省文件夹下 Private Sub Form_Load() Open num1.txt For Output As #1 Open num2.txt For Output As #2 For i = 1 To 50 Write #1, i If i Mod 7 = 0 Then Write #

7、2, i Next i Close #1, #2 Unload Me End Sub 说明:num1.txt文件中一共写入50个记录,而num2.txt文件只写入其中能被7整除的若干个记录,例8.1 把150各数及能被7整除的数分别存入两个文件中,在例8.1所生成的num2.txt文件中,存放了若干个能被7整除的数,现要求再加入51200范围内能被7整除的数 程序代码如下: Private Sub Form_Load() Open num2.txt For Append As #1 For i = 51 To 200 If i Mod 7 = 0 Then Write #1, i Next i

8、 Close #1 Unload Me End Sub,例8.2 在num2.txt文件中加入51200范围内能 被7整除的数,输入某小组5名学生的成绩(表8.1),存放在“我的文档”(C:My Documents)文件夹下的新建顺序文件Cj2.txt 设计步骤如下: (1)创建应用程序的用户界面和设置对象属性,例8.3 建立学生成绩顺序文件Cj2.txt,(2) 设置事件过程 Form_Load():新建文件 Command1_Click():接收录入信息,并以一个记录存入文件中 Command2_Click():关闭文件和结束程序运行 Private Sub Form_Load() Ope

9、n “C:my documentsCj2.txt“ For Output As #1 End Sub Private Sub Command1_Click() Dim num As String * 6, name As String * 8, score As Integer num = Text1.Text name = Text2.Text score = Val(Text3.Text) Write #1, num, name, score 存入记录 Text1.Text = 存完1个记录后清空 Text2.Text = Text3.Text = Text1.SetFocus 设置焦点

10、End Sub,Private Sub Command2_Click() Close #1 End End Sub 程序运行完成后,用Windows记事本来打开该顺序文件(文本文件),即可看到存入的文件内容 说明:在显示的文件内容中,字符串(学号、姓名)两边的引号是系统自动加入的。字段之间通过逗号隔开,2. Print语句 格式:Print #文件号,表达式表 作用与Write一样。将一个或多个表达式的值写到与文件号相关的顺序文件中。其输出数据格式与Print方法在窗体上输出格式相似。 示例: Print #1, num, name, score 对应按区格式 Print #1, num;na

11、me;score 对应紧凑格式,先用Input方式打开文件,然后采用Input或Line Input语句从文件中读出数据。通常,Input用来读出Write写入的记录内容,而Line Input用来读出Print写入的记录内容 1. Input语句 一般格式:Input #文件号,变量名表 功能:从指定文件中读出一个记录。变量个数和类型应该与要读取的记录所存储的数据一致。 打开文件时,文件指针指向文件中的第1个记录,以后每读取一个记录,指针就向前推进一次。如果要重新从文件的开头读数据,则先关闭文件后打开,8.2.2 顺序文件的读出操作,程序代码如下: Private Sub Form_Load

12、() Show Open data1.txt For Output As #1 a = 123 : b$ = ABCD Write #1, a, b$ 存入 Close #1 Open data1.txt For Input As #1 Input #1, c, d$ 读出 Close #1 Print c, d$ End Sub 程序运行后,输出结果如下: 123 ABCD,例8.4 一个存取数据的示例,已知文件“num2.txt”中存放一批能被7整除的数(见例8.1及例8.2),现要求把这些数显示出来。每行显示4个数。 Private Sub Form_Load() Show k = 0

13、Open num2.txt For Input As #1 Do While Not EOF(1) 文件未结束时,循环 Input #1, x Print x, k = k + 1 If k Mod 4 = 0 Then Print 每显示4个数后换行 Loop Close #1 End Sub,例8.5 从文件“num2.txt”中读取数据,从文件Cj2.txt(见例8.3)中读出5个学生的资料,显示在列表框中,并求出平均分 (1) 创建应用程序的用户界面和设置对象属性,例8.6 从文件Cj2.txt中读出5个学生的资料,(2)编写程序代码 功能要求:单击“查询”按钮时,则打开文件后读取文件

14、中所有记录内容,并显示在列表框List1中,计算得到的平均分显示在文本框Text1中 Private Sub Command1_Click() Dim n As String, m As String, s As Integer Dim x As String, t As Integer Open C:my documentsCj2.txt For Input As #1 t = 0 For i = 1 To 5 Input #1, n, m, s x = n + Space(2) + m + Str(s) List1.AddItem x :t = t + s Next i Close #1 Text1.Text = t / 5 End Sub,2. Line Input语句格式:Line Input #文件号,字符型变量功能:从打开的顺序文件中读出一个记录,即一行信息 例8.7 Print语句和Line Input语句配合使用的示例 Private Sub Form_Load() Show Open mytxt.txt For Output As #1 a = 123 : b$ = ABCD Print #1, a, b$ 写入第1个记录

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号