ファイル
目次
テキストファイル
テキストファイルを扱うには,定義済のファイル型 text を用います。
次のプログラムは,テキストファイル hoge.txt の内容をコンソールに出力する例です。
program sample(f, output);
var
f : text;
buf : string(256);
begin
assign(f, 'hoge.txt');
reset(f); { ファイルを読み込み用に開く }
while not eof(f) do
begin
readln(f, buf);
writeln(buf)
end;
close(f)
end.
ファイルを読み込み用に開くには,assign 手続きでファイル名を指定した後,reset 手続きでファイルを開きます。
ファイルを閉じるには close 手続きを呼び出します。
手続き readln は,第 1 引数にファイルを指定すると,そのファイルからの読み込みを行います。
次のプログラムは,テキストファイル hoge.txt にサンプルテキストを書き込むプログラムです。
program sample(f);
var
f : text;
begin
assign(f, 'hoge.txt');
rewrite(f); { ファイルを書き込み用に開く }
writeln(f, 'This is some sample text.');
close(f)
end.
ファイルを書き込み用に開くには,reset 手続きの代わりに rewrite 手続きを呼び出します。
writeln 手続きも readln と同様,第 1 引数にファイルを指定すると,そのファイルへの書き込みを行います。
一般のファイル型
一般のファイル型は file of 成分型 と書きます (書き下した型定義は不可)。
例えば,実数型のファイルを扱うには file of real と書きます。
次のプログラムは,実数型のファイルに実数 1/1, 1/2, ..., 1/5 を書き込むする例です。
program sample(f);
var
f : file of real;
i : integer;
begin
assign(f, 'hoge.dat');
rewrite(f);
for i := 1 to 5 do
begin
f^ := 1 / i;
put(f);
end;
close(f)
end.
ファイルのバッファ (バッファ変数) にアクセスするには f^ と書きます。
書き込み中のファイルのバッファ変数を更新 (書き込み位置を移動) するには put 手続きを呼び出します。
次のプログラムは,実数型のファイル hoge.dat の内容を読み込んで,コンソールに出力するものです。
program sample(f, output);
var
f : file of real;
n : real;
begin
assign(f, 'hoge.dat');
reset(f);
while not eof(f) do
begin
n := f^;
writeln(n:0:2);
get(f);
end;
close(f)
end.
1.00
0.50
0.33
0.25
0.20
読み込み中のファイルのバッファ変数を更新 (読み込み位置を移動) するには,put 手続きの代わりに get 手続きを呼び出します。