Pascal-files-handling
パスカル-ファイル処理
Pascalは、ファイルを一連のコンポーネントとして扱います。コンポーネントのタイプは統一されている必要があります。 ファイルのタイプは、コンポーネントのタイプによって決まります。 ファイルのデータ型は次のように定義されています-
ここで、base-typeはファイルのコンポーネントのタイプを示します。 基本タイプは、整数、実数、ブール値、列挙型、サブレンジ、レコード、配列、セットなど、別のファイルタイプを除きます。 ファイルタイプの変数は、_var_宣言を使用して作成されます-
以下は、いくつかのファイルタイプとファイル変数を定義するいくつかの例です-
ファイルの作成と書き込み
学生の記録用のデータファイルを作成するプログラムを作成しましょう。 student.datという名前のファイルを作成し、そこに生徒のデータを書き込みます-
コンパイルして実行すると、プログラムは_students.dat_という名前のファイルを作業ディレクトリに作成します。 メモ帳などのテキストエディタを使用してファイルを開き、John Smithのデータを確認できます。
ファイルからの読み取り
作成して、students.datという名前のファイルに書き込みました。 今、私たちはファイルから学生のデータを読み取るプログラムを書きましょう-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
サブプログラムパラメータとしてのファイル
Pascalでは、ファイル変数を標準およびユーザー定義のサブプログラムのパラメーターとして使用できます。 次の例は、この概念を示しています。 プログラムは、rainrain.txtという名前のファイルを作成し、いくつかの降雨データを保存します。 次に、ファイルを開き、データを読み取り、平均降水量を計算します。
サブプログラムでファイルパラメータを使用する場合、varパラメータとして宣言する必要があることに注意してください。
上記のコードをコンパイルして実行すると、次の結果が生成されます-
テキストファイル
Pascalのテキストファイルは、各行が行末マーカーで終了する文字の行で構成されます。 次のようなファイルを宣言して定義できます-
通常の文字ファイルとテキストファイルの違いは、テキストファイルが行に分割され、各行が特別な行末マーカーで終了し、システムによって自動的に挿入されることです。 次の例では、contact.txtという名前のテキストファイルを作成して書き込みます-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
ファイルに追加する
ファイルに追加するということは、ファイルを上書きせずに、すでにいくつかのデータがある既存のファイルに書き込むことを意味します。 次のプログラムはこれを示しています-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
ファイル処理関数
Free Pascalは、ファイル処理のために次の関数/手順を提供します-
Sr.No. | Function Name & Description |
---|---|
1 |
procedure Append(var t: Text); 追加モードでファイルを開きます |
2 |
procedure Assign(out f: file; const Name:); ファイルに名前を割り当てます |
3 |
procedure Assign(out f: file; p: PChar); ファイルに名前を割り当てます |
4 |
procedure Assign(out f: file; c: Char); ファイルに名前を割り当てます |
5 |
procedure Assign(out f: TypedFile; const Name:); ファイルに名前を割り当てます |
6 |
procedure Assign(out f: TypedFile; p: PChar); ファイルに名前を割り当てます |
7 |
procedure Assign(out f: TypedFile; c: Char); ファイルに名前を割り当てます |
8 |
procedure Assign(out t: Text; const s:); ファイルに名前を割り当てます |
9 |
procedure Assign(out t: Text; p: PChar); ファイルに名前を割り当てます |
10 |
procedure Assign(out t: Text; c: Char); ファイルに名前を割り当てます |
11 |
procedure BlockRead(var f: file; var Buf; count: Int64; var Result: Int64); ファイルからメモリにデータを読み取ります |
12 |
procedure BlockRead(var f: file; var Buf; count: LongInt; var Result: LongInt); ファイルからメモリにデータを読み取ります |
13 |
procedure BlockRead(var f: file; var Buf; count: Cardinal; var Result: Cardinal); ファイルからメモリにデータを読み取ります |
14 |
procedure BlockRead(var f: file; var Buf; count: Word; var Result: Word); ファイルからメモリにデータを読み取ります |
15 |
procedure BlockRead(var f: file; var Buf; count: Word; var Result: Integer); ファイルからメモリにデータを読み取ります |
16 |
procedure BlockRead(var f: file; var Buf; count: Int64); ファイルからメモリにデータを読み取ります |
17 |
procedure BlockWrite(var f: file; const Buf; Count: Int64; var Result: Int64); メモリからファイルにデータを書き込みます |
18 |
procedure BlockWrite(var f: file; const Buf; Count: LongInt; var Result: LongInt); メモリからファイルにデータを書き込みます |
19 |
procedure BlockWrite(var f: file; const Buf; Count: Cardinal; var Result: Cardinal); メモリからファイルにデータを書き込みます |
20 |
procedure BlockWrite(var f: file; const Buf; Count: Word; var Result: Word); メモリからファイルにデータを書き込みます |
21 |
procedure BlockWrite(var f: file; const Buf; Count: Word; var Result: Integer); メモリからファイルにデータを書き込みます |
22 |
procedure BlockWrite(var f: file; const Buf; Count: LongInt); メモリからファイルにデータを書き込みます |
23 |
procedure Close(var f: file); ファイルを閉じます |
24 |
procedure Close(var t: Text); ファイルを閉じます |
25 |
function EOF(var f: file):Boolean; ファイルの終わりを確認します |
26 |
function EOF(var t: Text):Boolean; ファイルの終わりを確認します |
27 |
function EOF: Boolean; ファイルの終わりを確認します |
28 |
function EOLn(var t: Text):Boolean; 行末を確認します |
29 |
function EOLn: Boolean; 行末を確認します |
30 |
procedure Erase(var f: file); ディスクからファイルを削除します |
31 |
procedure Erase(var t: Text); ディスクからファイルを削除します |
32 |
function FilePos( var f: file):Int64; ファイル内の位置 |
33 |
function FileSize(var f: file):Int64; ファイルのサイズ |
34 |
procedure Flush(var t: Text); ファイルバッファをディスクに書き込みます |
35 |
function IOResult: Word; 最後のファイルIO操作の結果を返します |
36 |
procedure Read(var F: Text; Args: Arguments); ファイルから変数に読み込みます |
37 |
procedure Read(Args: Arguments); ファイルから変数に読み込みます |
38 |
procedure ReadLn(var F: Text; Args: Arguments); ファイルから変数に読み込み、次の行に移動します |
39 |
procedure ReadLn(Args: Arguments); ファイルから変数に読み込み、次の行に移動します |
40 |
procedure Rename(var f: file; const s:); ディスク上のファイルの名前を変更します |
41 |
procedure Rename(var f: file; p: PChar); ディスク上のファイルの名前を変更します |
42 |
procedure Rename(var f: file; c: Char); ディスク上のファイルの名前を変更します |
43 |
procedure Rename(var t: Text; const s); ディスク上のファイル名を変更する |
44 |
procedure Rename(var t: Text; p: PChar); ディスク上のファイルの名前を変更します |
45 |
procedure Rename( var t: Text; c: Char); ディスク上のファイルの名前を変更します |
46 |
procedure Reset(var f: file; l: LongInt); 読み取り用にファイルを開きます |
47 |
procedure Reset(var f: file); 読み取り用にファイルを開きます |
48 |
procedure Reset(var f: TypedFile); 読み取り用にファイルを開きます |
49 |
procedure Reset(var t: Text); 読み取り用にファイルを開きます |
50 |
procedure Rewrite(var f: file; l: LongInt); 書き込み用にファイルを開きます |
51 |
procedure Rewrite(var f: file); 書き込み用にファイルを開きます |
52 |
procedure Rewrite(var f: TypedFile); 書き込み用にファイルを開きます |
53 |
procedure Rewrite(var t: Text); 書き込み用にファイルを開きます |
54 |
procedure Seek(var f: file; Pos: Int64); ファイルの位置を設定します |
55 |
function SeekEOF(var t: Text):Boolean; ファイルの位置をファイルの終わりに設定します |
56 |
function SeekEOF: Boolean; ファイルの位置をファイルの終わりに設定します |
57 |
function SeekEOLn(var t: Text):Boolean; ファイルの位置を行末に設定します |
58 |
function SeekEOLn: Boolean; ファイルの位置を行末に設定します |
59 |
procedure SetTextBuf(var f: Text; var Buf); ファイルバッファのサイズを設定します |
60 |
procedure SetTextBuf(var f: Text; var Buf; Size: SizeInt); ファイルバッファのサイズを設定します |
61 |
procedure Truncate(var F: file); ファイルを位置で切り捨てます |
62 |
procedure Write(Args: Arguments); 変数をファイルに書き込みます |
63 |
procedure Write(var F: Text; Args: Arguments); 変数をファイルに書き込む |
64 |
procedure Writeln(Args: Arguments); 変数をファイルに書き込み、改行を追加します |
65 |
procedure WriteLn(var F: Text; Args: Arguments); 変数をファイルに書き込み、改行を追加します |