重点难点与错分析_第1页
重点难点与错分析_第2页
重点难点与错分析_第3页
重点难点与错分析_第4页
重点难点与错分析_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、重点难点和错误分析 项目四 学生信息处理主 讲 :浙江广播电视大学 齐幼菊一、文件及文件分类一、文件及文件分类文件是指记录在外部介质的数据集合,一文件是指记录在外部介质的数据集合,一段文字、一段音乐或者一幅图片都可以是段文字、一段音乐或者一幅图片都可以是一个文件。一个文件。顺序文件顺序文件又称又称 “文本文件文本文件”,是顺序存取的文件。,是顺序存取的文件。特点:每次只能从第一个记录开始,一个接一特点:每次只能从第一个记录开始,一个接一个的按顺序输入或输出记录。占用的磁盘空间个的按顺序输入或输出记录。占用的磁盘空间少,适用于不经常修改数据的文件。少,适用于不经常修改数据的文件。一、文件及文件分

2、类一、文件及文件分类随机文件随机文件可以按照任意顺序读写的文件。可以按照任意顺序读写的文件。每条记录都有一个记录号,并且所有记录的长每条记录都有一个记录号,并且所有记录的长度是固定的。度是固定的。读取数据时,只要指定记录号就可以直接读取读取数据时,只要指定记录号就可以直接读取记录,所以随机文件的读写速度快,而且打开记录,所以随机文件的读写速度快,而且打开后可同时做读、写操作,不像顺序文件那样打后可同时做读、写操作,不像顺序文件那样打开后只能做读写操作中的一种。开后只能做读写操作中的一种。一、文件及文件分类一、文件及文件分类二进制文件二进制文件二进制数据的集合,磁盘中的文件在本质上都二进制数据的

3、集合,磁盘中的文件在本质上都是以二进制方式存储的。是以二进制方式存储的。二进制文件存取方式以字节为单位对文件进行二进制文件存取方式以字节为单位对文件进行访问的。访问的。二进制存储密集、空间利用率高,但操作起来二进制存储密集、空间利用率高,但操作起来不太方便。不太方便。二、文件操作二、文件操作 文件的类型不同,访问数据的方式也不同,文件的类型不同,访问数据的方式也不同,但基本处理步骤都是三步:但基本处理步骤都是三步:(1)打开(或新建)文件)打开(或新建)文件(2)进行读)进行读/写操作写操作(3)关闭文件)关闭文件二、文件操作二、文件操作 private sub cmdadd_click()d

4、im intflag as integer,n as integer,intlasbz as integerdim strcomp1 as string, strcomp2 as stringintflag = 0if fname thenopen fname for random as #1 len = len(stuxs)elsemsgbox 请先新建或打开学生信息文件请先新建或打开学生信息文件exit subend if二、文件操作二、文件操作 intlasbz = lof(1) / len(stuxs)for n = 1 to intlasbzget #1, n, stuxsstrco

5、mp1 = trim(txtinfor(0).text) strcomp2 = trim(replace(stuxs.strxh, chr(0), )if strcomp(strcomp1, strcomp2) = 0 then intflag = 1end ifnext n二、文件操作二、文件操作 if intflag = 0 thenwith stuxs .strxh = txtinfor(0).text .strxm = txtinfor(1).text .strxb = iif(optsex(0).value, 男男, 女女) .intnl = val(txtinfor(2).text

6、) .strbj = txtinfor(3).text .strbz = txtinfor(4).textend with二、文件操作二、文件操作 put #1, intlasbz + 1, stuxsmsg = stuxs.strxh + + stuxs.strxm + + _ stuxs.strxb + + stuxnl + + _ stuxs.strbj + + stuxs.strbzlststud.additem msgelsemsgbox 该学生已经存在该学生已经存在, vbinformation, 提示提示end ifclose #1end sub二、常见错误分析二、常见

7、错误分析出现出现“文件已打开文件已打开”出错信息出错信息文件所占空间和文件大小不一致文件所占空间和文件大小不一致input(lof(文件号文件号), #文件号文件号) 发生发生 “输入输入超出文件尾超出文件尾”错误错误1 出现出现“文件已打开文件已打开”出错信息出错信息原因:原因:主要是前一次执行过打开语句,文件没有关闭,主要是前一次执行过打开语句,文件没有关闭,以后再打开时就会发生此问题。以后再打开时就会发生此问题。文件使用完后必须用文件使用完后必须用close语句关闭,否则将语句关闭,否则将可能丢失数据!可能丢失数据!解决方法:解决方法:文件使用结束后,关闭文件。文件使用结束后,关闭文件。

8、2文件所占空间和文件大小不一致文件所占空间和文件大小不一致操作系统将硬盘划分为若干个簇,然后以操作系统将硬盘划分为若干个簇,然后以簇作为最小单位保存文件。每个簇的大小簇作为最小单位保存文件。每个簇的大小因为操作系统和分区大小而不同。因为操作系统和分区大小而不同。计算占用空间,先调用计算占用空间,先调用getdiskfreespace获得磁盘的簇的大小。获得磁盘的簇的大小。 然后利用文件大小然后利用文件大小除以簇的大小并将小数进位得到占用的簇除以簇的大小并将小数进位得到占用的簇数,然后再乘以簇的大小就可以获得获得数,然后再乘以簇的大小就可以获得获得文件占用的空间。文件占用的空间。 3 input

9、(lof(文件号文件号), #文件号文件号) 发生发生 “输入超出文件尾输入超出文件尾”错误错误原因:原因:input函数的第一个参数是要读入的字符数,函数的第一个参数是要读入的字符数,采用采用unicode方式(英文字母和汉字,一律算方式(英文字母和汉字,一律算一个字符)。一个字符)。lof函数却返回的是字节数。函数却返回的是字节数。例:如果你的文件中有例:如果你的文件中有10个汉字,那么个汉字,那么lof函数返回函数返回文件长度文件长度20个字符,执行个字符,执行input(20, filenum1),vb读到第读到第10个汉字时就把文件读完了,所以提示错误:个汉字时就把文件读完了,所以提示错误:输出超出文件尾输出超出文件尾。主要原因和解决办法主要原因和解决办法解决办法:解决办法:(1)使用)使用line input语句语句line input语句只看文件中是否有回车和换行所语句只看文件中是否有回车和换行所以没有这个问题,以没有这个问题, 但但line input语句比语句比input语句慢得多。语句慢得多。(2)把)把open打开文件的方式由打开文件的方式由inpu

温馨提示

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

评论

0/150

提交评论