[帕斯卡尔 – TUT] 帖子 10: 在帕斯卡文件 – 文件类型

1 文件的概念:

该文件被相同类型的元素的序列顺序排列. 的数据文件存储在外部存储器在一定的名.
文件聚集在它的数据的一些元件具有相同的结构,但不同的阵列像文件的数组编号没有被定义.

[qads]

在帕斯卡 3 使用的文件类型是:
1. 文本文件:在ASCII字符的形式用来存储数据, 这些字符将被保存每一行, 线的长度可以变化. 例 2008 (类型字) 它们被写入到文本文件以 4 字节 (不 2 字节).
2. 文件类型: 该文件是一个文件类型,它的元件具有相同的长度和相同的数据类型.
3. 文件类型是不: 文件类型是不是一个文件,而不管输入的数据写入到文件的类型的. 写入文件,而无需转换数据.
数据文件可以存储在RAM处理从键盘输入的数据结果类型的影响最大使用文件多次.
* 声明:
– 从类型类型的描述定义文件类型的关键字文件如下, 下一个变量的变量声明文件中声明.
例:
Type
	Arr = array[1..100] of integer; {dinh nghia mang Arr}
	TArr = FILE of Arr; {dinh nghia tep TArr co cac phan tu la mang Arr}
	TStr = FILE of String[50]; {tep TStr co cac phan tu la chuoi co do dai 50 ky tu}
	SinhVien = Record
		Msv, Hoten : String[50];
		Diem : real;
	end;
	TSv = FILE of SinhVien; {tep TSv gom cac phan tu la kieu SinhVien}
Var
	T1 : TArr;
	T2 : TStr;
	T3 : TSv;
  • 直接在变量声明变量定义文件
Var
	T4 : FILE of array[1..100] of real;
	T5 : FILE of SinhVien;

1. 输入导出到文本文件
对文件的访问将被解释为将数据输入到该文件, 记录的数据上的外部存储设备, 阅读屏幕或打印机上的数据,处理它.

在操作这些文件,我们需要使用的程序分配(bientep, tentep). 这个过程的目的是指定一个磁盘文件 (tentep) 在RAM中的文件中的变量名 (bientep).

  • 打开一个新的文件记录:
Assign(bientep, tentep);
Rewrite(bientep);

程序 改写 建立以分配指定文件并打开它检索数据lieu.Khi使用命令重写打开文件赋给变量名磁盘文件名,如果磁盘上的文件恰逢名称您. 要小心,当你使用命令重写打开文件.

  • 打开文件要放:
Assign(bientep, tentep);
Append(bientep);
  • 打开读取数据的文件:
Assign(bientep, tentep);
Reset(bientep);

注意: 当你与一个复位打开一个文件,如果磁盘上没有文件会导致错误.

最后, 我们必须使用的程序关闭文件:
CLOSE(bientep);
该过程通过内存中的内容到磁盘文件,并关闭文件释放内存处理文件. 该文件打开时,如果不接近找回丢失的数据的变量文件名.

数据对文件类型变量的条目只是做了如下:
– 阅读使用文件数据的程序 Readln(bientep,好);
– 将数据写入磁盘: 使用过程 Writeln(bientep,好);
例:

uses crt;
var
        t : Text;
        str : string;
BEGIN
        clrscr;
        assign(t, 'inputText.txt'); {gan ten bien tep cho tep}
        rewrite(t); {mo tep de ghi du lieu}
        writeln(t, 'nguyenvanquan');
        writeln(t, '7826');

        reset(t);   {mo tep de doc du lieu}
        writeln('Data of file inputText.txt:');
        {trong khi con tro tep chua den cuoi tep thi cu doc}
        while not eof(t) do
        begin
                readln(t, str);
                writeln(str);
        end;

        append(t);  {mo tep de ghi them du lieu}
        writeln(t, 'test');

        close(t);

        reset(t);
        writeln;
        writeln('Data of file inputText.txt after change:');
        {trong khi con tro tep chua den cuoi tep thi cu doc}
        while not eof(t) do
        begin
                readln(t, str);
                writeln(str);
        end;

        close(t);   {dong tep}
        readln;
END.

文件中帕斯卡

2. 文件类型
正如我们都知道的文件类型的文本输入而引起麻烦,记录数据,如读, 记录的数据 1 学生必须进行非常复杂. 我们可以处理更简单的文件类型.
读写 :
– 写文件: 写(bientep,property.1,bien2 ...); 与bien1,bien2,...具有相同的类型与变量文件变量.
– 阅读文件: 阅读(bientep,property.1,bien2 ...);
注意:
与文本文件, 写入和读出该文件类型不使用writeln命令或文件类型readln装置不写入数据流. 文件类型的元素是在存储单元和唯一的结束符号EOF文件连续地记录. 当我们完成读取或写入文件中的元素时,光标会自动移动到下一个位置.

访问该文件的第i个元素: 寻找(bientep,在); I = 0,1,2,...
程序申请的文件的第i个位置定位光标.
文件处理程序:
* 文件大小(bientep) 指示文件中元素的数量
* FilePos(bientep) 所述文件指针的当前位置
* EOF(Bientep) 值为True如果文件指针指向文件的位置结束, 假向后

例:

uses crt;
Type
        SinhVien = Record
                MSv, Hoten : String;
                Diem : real;
        end;
Var
        TSv : FILE of SinhVien;
        sv : SinhVien;
        i : integer;
BEGIN
        clrscr;
        assign(TSv, 'SV.dat');
        rewrite(TSv);
        for i:= 1 to 3 do {ghi du lieu 3 sinh vien vao tep}
        begin
                {nhap du lieu}
                write('Nhap ma sinh vien thu ', i, ' : ');
                readln(sv.MSv);
                write('   Nhap ten sinh vien: ');
                readln(sv.Hoten);
                write('   Nhap diem cua sinh vien: ');
                readln(sv.diem);

                {ghi du lieu vao tep}
                write(TSv, sv);
        end;
        close(TSv);
        reset(TSv); {mo tep de doc}
        writeln;
        writeln('Thong tin sinh vien thu 2 trong tep:');
        seek(TSv, 2);
        read(TSv, sv);
        writeln('MSV: ', sv.MSv);
        writeln('Ho ten: ', sv.Hoten);
        writeln('Diem: ', sv.diem:3:2);
        close(TSv);
        readln;
END.

当你打开一个文件,它不会SV.dat找到所需的信息,因为它是用二进制的形式,而不是它的文本,而是信息仍然是准确的.
进出口二进制帕斯卡

在文章中引用:
codepascal.blogspot.com
z15.invisionfree.com