文件的基本操作 实验

编程实验

72人已加入

描述

实验  文件的基本操作
一、实验目的
    (1)掌握顺序文件、随机文件、二进制文件的特点及使用方法。
    (2)熟练掌握文件的打开、关闭和读写命令。
    (3)学会利用文件建立简单的应用程序。
二、相关知识
1.文件的基本概念及文件类型
    “文件”是存放在外部介质(磁盘、磁带等)上的相关数据的集合,每一个文件都有文件名。根据文件中数据的存放形式,将数据文件分为3种类型,即顺序文件、随机文件和二进制文件。对此,VB提供了3种文件访问的类型:顺序访问、随机访问和二进制访问。
2.顺序文件
    要处理的文件只包含文本信息,其中的数据没有分成记录,就可以使用顺序型访问。进行顺序访问要用到以下3种打开文件的模式:
 ● 读文件:Open[路径:]文件名[.扩展名]  ForInput As #文件号。
 ● 写文件:Open[路径:]文件名[.扩展名]  For Output As #文件号。
 ● 追加写入:Open[路径:]文件名[.扩展名]  For Append As #文件号。
3.随机文件
    随机文件是由一组相同长度的记录组成,每个记录包含一个或多个字段。具有一个字段的记录对应于任一标准类型,具有多个字段的记录对应于用户定义类型。随机文件对读写顺序没有限制,可以以记录为单位,读写任何—条记录。进行随机访问要用到以下打开文件的模式:Open[路径:]文件名[.扩展名]  For Random As #文件号 [Len = 记录长度]
4.二进制文件
    二进制访问是以字节为单位对文件进行的访问操作,它允许用户读写文件的任何字节。通过使用二进制访问可使磁盘空间的使用降到最小,当要保持文件的尺寸尽量小时,应使用二进制型访问。要打开二进制访问的文件,Open语句打开文件的方式如下:
    Open[路径:]文件名[.扩展名]  For Binary As #文件号
三、实验举例
(实例1)已知某班学生成绩文件为“grade.Dat”,该文件共有6个宇段:姓名、语文成绩、数学成绩、英语成绩、计算机成绩、总分:姓名字段为8个字符的字符型,其余宇段都是数值型。设该文件已经按照总分降序排序,输入一个总分,请用折半查找的方法查找该班是否存在某分数的人,若找到,输出该学生的情况,否则输出没有找到。
根据上述描述,进行如下操作:
(1)首先在模块中建立如下结构:
Type  stdinfo
       name  AS  String  * 8
       yuwen AS Integer
       math  AS Integer
       english AS Integer
       xgrade AS Integer
       sum  AS  Integer
End Type
(2)将学生信息(包括:姓名、4门课成绩)放入到abc.txt文件中。
”张三”,98,97,96,94
”李四”,94,96,95,95
“王五”,92,90,98,93
“赵六”,90,96,92,88
“孙七”,88,92,86,84
“马八”,93,86,88,80
“武九”,90,84,80,82
“刘一”,86,80,85,83
“曹二”,78,90,82,80
然后用如下代码将上面数据的文件变成为随机文件“grade.dat”。
Private  Sub  Command2  Click()
Dim  filenol  AS  integer,  fileno2 AS  integer
Dim  std  AS  Stdinfo
Dim  C  AS  integer
Filenol=FreeFile
Open  App.Path  &  ”\abc.Txt” For  input  AS  #fileno1
fileno2  = FreeFile
Open App.Path & ”\grade.dat”For Random as #fileno2 len = Len(std)
C  = 1
Do  While  Not  EOF(filenol)
        input  #fileno1,  Std.name,Std.yuwen,  Std.math,_
std.english,  std.xgrade
        std.sum  =  Std.yuwen +Std.Math + std.English + std.xgrade
        Put  #fileno2,  C,  std
        C =  C  +  1
    Loop
     Close   #fileno2
     Close   #fileno1
End  Sub
(3) 进行折半查找。
Private  Sub  Form_load()
    Forml.Caption = “学生成绩折半查找”
End  Sub
Private  Sub  Commandl_click()
    Dim  fileno  AS  integer
    Dim  low AS  integer
    Dim  mid  AS  integer
    Dim  high  AS  integer
Dim  Std  AS  Stdinfo
    Dim  c AS  integer
    fileno  =  FreeFile
Open App.Path &  ”\grade.dat” For Random as #fileno len = Len(std)
high  =  LOF(fileno)  \  Len(Std)
    c =  inputbox( “输入一个总分”)
do While  low <= high
mid  =  (low  +  high)  \  2
Get  #fileno,  mid,  Std
if  Std.sum  >  C  Then
    low = mid+  l
Elseif  Std.sum  <  C  Then
    High = mid  -  l
ElSe
    Exit  do
    End  if
Loop
    if  low  <=  high  Then
       Print  Std.name,Std.yuwen,Std.math,Std.engliSh,Std.xgrade,Std.sum
    Else
       Print“成绩”;c;  ”没有找到”
    End  if
    Close  #fileno
End  Sub
程序运行时输入334,结果为________。
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分