首頁 补品 豆浆 瓜果 奶制品 牛奶 食疗 食物禁忌
 您的位置:首页 > 牛奶

二十八 文件操纵-二十八星宿

在DOS操纵中,我们所谈及的文件称之为外部文件。外部文件是存储在外部配置上, 如:外存储器上,可由谋划机操纵系统进行办理,如用dir、type等命令直接对文件进行操纵。 Pascal所谈及的文件,称之为内部文件。内部文件的特点是
标签:文件,文本文件,类别,程序,变量,命令,定义,次序,元素,都会,数据,内容,默契,数组,效用,指针,模样,方法,门生,原始数据
在DOS操纵中,我们所谈及的文件称之为外部文件。
外部文件是存储在外部配置上, 如:
外存储器上,可由谋划机操纵系统进行办理,如用dir、type等命令直接对文件进行操纵。

  Pascal所谈及的文件,称之为内部文件。
内部文件的特点是文件的实体(实际文件)也是存储在外存储器上,成为外部文件的一分子,但在利用时必须在程序内部以必定的语句与实际文件关联起来,建立一一对应的干系,用内部文件的逻辑名对实际文件进行操纵。
内部文件的逻辑名必须符合PASCAL说话标识符的取名法则。

  Pascal中的文件紧张用于存放年夜量的数据。
如:
成绩办理,原始数据很多,利用文件先将其存入磁盘,通进程序读出文件中的数据再进行处理,比不利用文件要来得便利、有效。

  Pascal中的一个文件定义为联合类别的元素构成的线性序列。
文件中的各个元素按必定次序分列,可以从头至尾会见每一个元素,从定义上看,文件与数组相似,但它们之间有着明显差别的特征,紧张表如今:

  (1)文件的每一个元素次序存贮于外部文件配置上(如磁盘上)。
是以文件可以在程序进行前由Pascal程序或用笔墨编纂软件,如edit、ws、Turbo Pascal的edit命令等产生,或在运行进程中由程序产生,且运行完后,依然存贮在外部配置上。

  (2)在系统内部,经过议定文件指针来办理对文件的会见。
文件指针是一个保存程序在文件中位置踪迹的谋划器,在一巩固时候,程序仅能对文件中的一个元素进行读或写的操纵,在向文件写入一个元素或从文件读取一个元素后,响应的文件指针就进步到下一元素位置。
而数组是按下标会见。

  (3)在文件类别定义中无需法则文件的长度即元素的个数,便是说元素的数据可动态变化,一个文件可以特别之年夜,包括许很多多元素,也可以异国任何元素,即为一个空文件。
而数组的元素个数则是确定的。

  利用文件年夜抵有以下几个程序;
  (1)阐明文件类别,定义文件标识符;
  (2)建立内部文件与外部文件的关联;
  (3)打开文件;
  (4)对文件进行操纵;
  (5)封闭文件。

  Turbo Pascal将文件分为三类:
文本文件(次序)、有类别文件(次序或随机)和无类别文件(次序或随机)。
下面将介绍这些文件及其操纵。

一、文本文件

  文本文件又称为正文文件或行文文件,可供人们直接涉猎,是人机通信的根本数据式样之一。
文本文件可用笔墨编纂程序(如DOS的edit或Turbo Pascal的编纂命令edit)直接建立、涉猎和点窜, 也可以由PASCAL程序在运行进程中建立。

  1、文本文件的定义:

  文本文件的类别为TEXT,它是由ASCII字符构成的,是Pascal供给的标准文件之一。
标准文件 TEXT已由Pascal阐明如下:

  TYPE TEXT=FILE OF CHAR;
  是以,TEXT同标准类别INTEGER、READ等一样可以直接用于变量阐明之中,无需再由用户阐明。
比方:

  VAR F1,F2:
TEXT;
  这里定义了两个文本文件变量F1和F2。

 2、文本文件的建立
  文本文件的建立有两种方法:

  (1)直接用Turbo Pascal的Edit建立原始数据文件。

  例1 将下表中的数据存入名为A.dat的文件中。

   3 4
   29 30 50 60
   80 90 70 75
   60 50 70 45
  操纵程序:

  ①进入Turbo Pascal的编纂状况;
  ②输入数据;
  ③存盘,文件名取A.dat。

  此时,已将数据存入文本文件A.dat中。
文本文件也可用DOS中的Edit等软件建立。

  (2)用程序的方法建立中间数据或结果数据文件。

  用程序的方法建立文件操纵程序为:

  ①定义文本文件变量;

  ②把一外部文件名赋于文本文件变量,使该文本文件与一响应外部文件相干联干系;
  命令模样:
ASSIGN(f,name)
  f为定义的文本文件变量
  name为实际文件文件名
  如:
ASSIGN(F1,默契FILEIN.DAT默契)
  或:
ASSIGN(F1,默契PASFILEIN.RES默契)
  如许在程序中对文本文件变量F1的操纵,也便是对外部实际文件默契FILEIN.DAT默契或默契FILEIN.RES默契的操纵。
上例中文件默契FILEIN.DAT默契是存贮在当前目次中,而文件默契FILEIN.RES默契则是存贮在PAS子目次中。

  ③打开文本文件,筹办写;
  命令模样1:
REWRITE(f)
  效用:
建立并打开新文件筹办写,若已有同名文件则删除再建立
  命令模样2:
APPEND(f)
  效用:
打开已存在的文件并追加

  ④对文件进行写操纵;
  命令模样:
WRITE(f,<项目名>)
  或:
WRITELN(f,<项目名>)
  效用:
将项目内容写入文件f中

  ⑤文件操纵完毕后,封闭文件。

  命令模样:
CLOSE(f)

  例2 从键盘上读入表12.1的数据,用程序写入名为B.dat的文件中。

   

  3、读取文本文件
  文本文件内容读出操纵程序:

  ①定义文本文件变量;
  ②用ASSIGN(f,name)命令,将内部文件f与实际文件name关联起来;
  ③打开文本文件,筹办读;
  命令模样:
READ(f,<变量名表>) READLN(f,<变量名表>)
  效用:
读文件f中指针指向的数据于变量中
  文本文件供给了别的两个命令,在文本的操纵中很有效处,它们是:

  EOLN(f):
回饯行结束符  
  EOF(f):
回送文件结束符
  ⑤文件操纵完毕,用CLOSE(f)命令封闭文件。

  例3 读出例12.1建立的文本文件,并输出。

    

  因为文本文件是以ASCII码的方法存储,故查看文本文件的内容是极为便利,在DOS状况可利用 DOS中TYPE等命令进行查看,在Turbo Pascal中可以象取程序一样掏出文件进行查看。

  4、文本文件的特点

  (1)行布局
  文本文件由多少行构成,行与行之间用行结束标记隔开,文件末端有一个文件结束标记。
因为各行长度年夜略差别,所以无法谋划出给定行在文本文件中实在定位置,从而只能次序地处理文本文件,并且不能对一文本文件同时进行输入和输出。

  (2)自动转换效用
  文本文件的每一个元素均为字符型,但在将文件元素读入到一个变量(整型,实型或字符串型)中时,Pascal会自动将其转换为与变量雷同的数据类别。
与此相背在将一个变量写入文本文件时,也会自动转移为字符型。

  例4 某进修小组有10人,参加某次测验,考核6门功课, 统计每人的总分及各门的均匀分,将原始数据及结果数据放入文本文件中。

  分析
  (1)利用Turbo Pascal的EDIT建立原始数据文件TESTIN.DAT存贮在磁盘中,其内容如下:

  10 6
  1 78 89 67 90 98 67
  2 90 93 86 84 86 93
  3 93 85 78 89 78 98
  4 67 89 76 67 98 74
  5 83 75 92 78 89 74
  6 76 57 89 84 73 71
  7 81 93 74 76 78 86
  8 68 83 91 83 78 89
  9 63 71 83 94 78 95
  10 78 99 90 80 86 70

  (2)程序读入原始数据文件,求每人的总分及各门的均匀分;
  (3)建立结果数据文件,文件名为TEXTIN.RES.

  程序:

  
  
  


  例5 读入一个行长不定的文本文件。
排版,建立一个行长巩固为60个字符的文件, 排版要求:
(1)当行末不是一个完好单词时,行最终一个字符位用'-'代替, 表现与下一行行头构成完好的单词;(2)第一行行头为两个空格,别的各行行头均不含有空格。

  分析
  (1)建立原始数据文件。

  (2)程序边读入原始数据文件内容,边排版。

  (3)每排完一行行长为60字符,并符合题中排版前提,写入目标文件中。

  设原始数据TEXTCOPY.DAT文件内容如下:

  Pavel was arrested.
  That dat Mother did not light the stove.
  Evening came and a cold wind was blowing.
  There was a knock at the window.
  Then another.
  Mother was used to such knocks,but this time she gave a little start of joy.
  Throwing a shawl over her shoulders,she opened the door.

  程序:

  
   
  

  对TEXTCOPY.DAT文本文件运行程序获得排版结果文件TEXTCOPY.RES内容如下:

    Pavel was arrested.That dat Mother did not light the stov-
  evening came and a cold wind was blowing.There was a knock
  at the window.Then another.Mother was used to such knocks,b-
  ut this time she gave a little start of joy.Throwing a shawl
  over her shoulders,she opened the door.

二、有类别文件

  文本文件的元素均为字型符。
若要在文件中存贮稠浊型数据,必须利用有类别文件。

  1、有类别文件的定义
  有类别文件中的元素可所以稠浊型的,并以二进制模样存贮,是以有类别文件(除了字符类别文件,因为它本色上是文本文件)不象文本文件那样可以用编纂软件等进行涉猎和处理。

  有类别文件的类别阐明的模样为:

  类别标识符=File of 基类别;
  此中基类别可所以除了文件类别外的任何类别。
比方:

  FILE1=FILE OF INTEGER;
  FILE2=FILE OF ARRAY[1--10] OF STRING;
  FILE3=FILE OF SET OF CHAR;
  FILE4=FILE OF REAL;
  FILE5=FILE OF RECORD;
  NAME:STRING;
  COURSE:ARRAY[1--10] OF READ;
  SUN:READ;
  END;
  等等,此中FILE2,FILE3,FILE5中的数组、集合、记录等类别可以先阐明再来定义文件变量。

  比方:

  VAR
  F1:FILE;
  F2,F3:FILE3;
  F4:FILE5;
  与前方扫数类别阐明和变量定义一样,文件类别阐明和变量定义也可以归并在一路,比方:

  VAR
  F1:FILE OF INTEGER;
  F2,F3:FILE OF SET OF CHAR;
  F4:FILE OF RECORD
  NAME:STRING;
  COURSE:ARRAY[1--10] OF REAL;
  SUM:READ;
  END;

  Turbo Pascal对有类别文件的会见既可以次序方法也可以用随机方法。

  为了能随机会见有类别文件,Turbo Pascal供给如下几个命令:

  命令模样1:
seek(f,n)
  效用:
移动当前指针到指定f文件的第n个分量,f为非文本文件,n为长整型
  命令模样2:
filepos(f)
  效用:
回送当前文件指针,当前文件指针在文件头时,返回,函数值为长整型
  命令模样3:
filesize(f)
  效用:
回送文件长度,如文件空,则返回零,函数值为长整型

  2、有类别文件的建立
  有类别文件的建立只能通进程序的方法进行,其操纵程序与文本文件程序方法建立的程序雷同,差别之处:
(1)有类别文件的定义与文本文件的定义差别;(2)有类别文件可以利用SEEK命令指定指针随机写入。

  3、有类别文件的会见
  有类别文件会见的操纵程序与文本文件的程序会见操纵程序雷同,区别之处:
(1)有类别文件的定义与文本文件的定义差别;(2)有类别文件可以利用SEEK命令会见文件记录中的任一记录与记录中的任一元素。

  例6 建立几个门生的姓名序、座号、六门课程成绩总分的有类别文件。

  
  分析:
为年夜略起见,这里假设已有一文本文件FILEDATA.TXT,其内容如下:

  10
  li hong
  1 89 67 56 98 76 45
  wang ming
  2 99 87 98 96 95 84
  zhang yi hong
  3 78 69 68 69 91 81
  chang hong
  4 81 93 82 93 75 76
  lin xing
  5 78 65 90 79 89 90
  luo ze
  6 96 85 76 68 69 91
  lin jin jin
  7 86 81 72 74 95 96
  wang zheng
  8 92 84 78 89 75 97
  mao ling
  9 84 86 92 86 69 89
  cheng yi
  10 86 94 81 94 86 87

  第一个数10表现有10个门生,紧接着是第一个门生的姓名、座号、6科成绩,然后是第二个门生,等等。

  从文本文件中读出数据,求出年夜家的总分,建立有类别文件,设文件名为filedata.fil,文件的类别为记录studreco,见下例程序。

  程序:

  
    
    
   


  例7 产生数1-16的平方、立方、四次方表存入有类别文件中, 并用次序的方法会见一遍,用随机方法会见文件中的11和15两数及响应的平方、立方、四次方值。

  分析:
建立有类别文件文件名为BIAO.FIL,文件的类别为实数型。

  (1)产生数1-16及其平方、立方、四次方值,写入BIAO.FIL,并次序读出输出;
  (2)用SEEK指针别离指向11和15数地点文件的位置,其位置数别离为10×4和14×4(注意文件的第一个位置是0),读出其值及响应的平方、立方、四次方值输出。

  程序:

  
   

  程序运行结果如下:

  

  别的,Turbo Pascal还供给了第三种式样文件即无类别文件,无类别文件是低层I/O通道,如果不思虑有类别文件、 文本文件等存在磁盘上字节序列的逻辑解释,则数据的物理存储只不过是一些字节序列。
如许它就与内存的物理单位一一对应。
无类别文件用128个连续的字节做为一个记录(或分量)进行输入输出操纵,数据直接在磁盘文件和变量之间传输,省去了文件缓解区,是以比别的文件少占内存,紧张用来直接会见巩固长元素的尽情磁盘文件。

  无类别文件的具体操纵在这里就不一一介绍,请参看有关的册本。

三、综合例析

  例8 建立都会飞机往返连接表。
文本文件CITY.DAT内容如下:

  第一行两个数字N和V;
  N代表可以被会见的都会数,N是正数<100;
  V代表下面要列出的直飞航路数,V是正数<100;
  接下来N行是一个个都会名,可乘飞机会见这些都会;
  接下来V行是每行有两个都会,两都会中间用空格隔开,表现这两个都会具有纵贯航路。

  如:
CITY1 CITY2表现乘飞机从CITY1到CITY2或从CITY2到CITY1。

  生成文件CITY.RES,由0、1构成的N×N连接表。

  连接表定义为:

           

  分析
  (1)用从文本文件city.dat中读入N个都会名存入一些数组CT中;
  (2)读入V行互通航班都会名,每读一行,查找两都会在CT中的位置L、K,建立连接干系,lj[l,k]=1和lj[k,j]=1;
  (3)将生成的连接表写入文本文件CITY.RES中。

  设CITY.DAT内容如下:

  10 20
  fuzhou
  beijin
  shanghai
  wuhan
  hongkong
  tiangjin
  shenyan
  nanchan
  chansa
  guangzhou
  fuzhou beijin
  fuzhou shanghai
  fuzhou guangzhou
  beijin shanghai
  guangzhou beijin
  wuhan fuzhou
  shanghai guangzhou
  hongkong beijin
  fuzhou hongkong
  nanchan beijin
  nanchan tiangjin
  tiangjin beijin
  chansa shanghai
  guangzhou wuhan
  chansa beijin
  wuhan beijin
  shenyan beijin
  shenyan tiangjin
  shenyan shanghai
  shenyan guangzhou

  程序:

  
   

  

获得CITY.RES文件内容如下:

  10
  1 fuzhou
  2 beijin
  3 shanghai
  4 wuhan
  5 hongkong
  6 tiangjin
  7 shenyan
  8 nanchan
  9 chansa
  10 guangzhou
  0 1 1 1 1 0 0 0 0 1
  1 0 1 1 1 1 1 1 1 1
  1 1 0 0 0 0 1 0 1 1
  1 1 0 0 0 0 0 0 0 1
  1 1 0 0 0 0 0 0 0 0
  0 1 0 0 0 0 1 1 0 0
  0 1 1 0 0 1 0 0 0 1
  0 1 0 0 0 1 0 0 0 0
  0 1 1 0 0 0 0 0 0 0
  1 1 1 1 0 0 1 0 0 0

  例9 对例12.3的FILEDATE.FIL文件内容按总分的凹凸次序排序。

  分析:

  文件的排序便是将文本文件的各分量按必定要求分列使文件有序,文件排序有内排序和外排序二种,内排序是指将文件各分量存入一个数组,再对数组分列,最终将该数组存入本来的文件。
外分列差别于内分列,它不是将文件分量存入数组,而是对文件直接排序,内排序比外排序速度要快,但当文件很年夜时,无法调入内存,此时用外排序法较符合。

  本程序利用进程SEEK,兑现外排序。

  程序:

  
    
   

                  习 题

  1、编一程序,谋划文本文件中行结束标记的数量。

  2、谋划文本文件的行长度的均匀值、最年夜值和最小值。

  3、一文本文件FILE.DAT存放N个门生某学科成绩,将成绩转换成直方图存入FILE.RES文件中。

  如FILE.DAT内容为:
  5
  78 90 87 73 84
  获得直方图文件FILE.RES内容为:
  5
  ********
  *********
  *********
  *******
  ********
  4、银行账目文件含有每一开户的账目细节:
开户号、姓名、地点、出入均衡额。
写一程序,读入每一开户的账目,生成银行账目文件。

  5、通信录文件每个记录内容为:
姓名、住址、单位、邮编、德律风,编一程序按姓名次序建立通信录文件,要求先建立文件,再对文件按姓名次序进行外排序。




关键字:二十八星宿,二十八宿,二十八岁未成年,腊月二十八,云台二十八将,惊变二十八周,哪一个月有二十八天,惊变二十八天,国门英雄第二十八集,二十八
相关资讯:28-文件系统管理操作_百度文库28-文件系统管理操作 - H3 wx3000无线有线一体化交换机操作手册286页 浏览:11次
wenku.baidu.com/view/17331e1aff00bed5b9f3 ... 2010-8-30华为路由器AR-28-31 V3.4版本 光盘文档-(01-入门操作).pdf 52页 浏览:185次
试验仪器操作规程上墙资料07.12.28.doc 17页 浏览:32次
华为路由器AR-28-31 V3.4版本 光盘文档-(10-VPN操作.pdf 84页 浏览:108次
更多文库相关文档>>

H3C WX3000系列有线无线一体化交换机交换引擎 操作手册-6PW103 - ... 为了方便用户对设备存储设备进行有效的管理,设备提供了文件系统功能,实现对文件和目录的访问管理:用户可以通过命令行对文件进行创建、移动、拷贝、删除等操作,并


相关文章:
  • 图解中医治疗尿血的拔罐操纵方法-拔罐图解
  • 肾毒清(二十八味槟榔丸)-二十八味槟榔丸
  • 图解中医治疗尿血的拔罐操纵方法-拔罐图解
  • 图解中医治疗尿血的拔罐操纵方法-拔罐图解
  • 图解中医治疗尿血的拔罐操纵方法-拔罐图解
  • 图解中医治疗尿血的拔罐操纵方法-拔罐图解
  • 图解中医治疗尿血的拔罐操纵方法-拔罐图解
  • 肾毒清(二十八味槟榔丸)-二十八味槟榔丸
  • 慢性火线腺炎治疗方案——细致,安定,有效,可操纵性
  • 临床微生物学尿培养操纵典范-不可培养微生物

  • 版权声明:
    本站文章部分转载自其他媒体,转载目的在于传播更多信息,丰富网络文化,此类稿件不代表本网观点。如本站链接内容可能涉嫌侵犯别人合法权益,应该及时提醒本站,本站将会尽快移除该文章内容或链接。
    联系请使用下面邮箱:

     本站最新
     栏目最新
     栏目热点