[パスカル – TUT] 投稿 10: パスカルのファイル – ファイルタイプ

1 ファイルの概念:

ファイルは、同じ型の要素の順序が順次配置されている. データファイルは、特定の名前の下に、外部メモリに格納されている.
その中にファイルの集計データの一部の要素は同様の構造を有しているが、ファイルの配列番号のような別の配列が定義されていません.

[qads]

Pascalで 3 ファイルタイプが使用され:
1. テキストフ​​ァイル:ASCII文字の形式でデータを格納するのに使用, これらの文字はそれぞれの行を保存している, 線の長さが異なる場合があります. 例 2008 (タイプワード) これらは、テキストフ​​ァイルに書き込まれ 4 バイト (しない 2 バイト).
2. ファイルタイプ: ファイルは、その要素が同じ長さと同じデータ型を持つことを、ファイルの種類である.
3. ファイル·タイプではない: ファイルの種類に関係なく、ファイルに書き込まれたデータの種類のファイルタイプではない. 変換せずに、ファイルに書き込まれたデータ.
は、データを格納することができるデータファイルの種類の最大の効果は、キーボードから入力した結果が、ファイルを複数回使用するRAMで処理.
* 宣言する:
– キーワードFILEのOFのファイルタイプを定義すると、型TYPEの説明から、以下の, 次の変数は、変数宣言ファイルで宣言されている.
例:
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);
この手順では、ディスクファイルにメモリの内容を渡し、ファイルを処理するためのファイルのリリースメモリを閉じる. 変数の失われたデータを取り出すに近くないが、ファイル名と、開いているファイル.

次のようにFile型の変数に関するデータの入力にのみ行われます:
– 手順を使用してファイルからデータを読み込む 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