Files/ja

From Lazarus wiki
Jump to: navigation, search

English (en) français (fr) 日本語 (ja) 中文(中国大陆)‎ (zh_CN)

2D - ファイル (著者: Tao Yue, 状態: 原文のまま修正なし)

画面(キーボード)からのかわりにファイルから読み込む場合には次のように行う。

read (ファイル変数, 引数リスト);
write (ファイル変数, 引数リスト);

readlnwriteln と同様にファイル変数は以下のように宣言される。

var
  ...
  filein, fileout : text;

text というデータタイプはファイルが単なるテキストであることを示している。

ファイルのための変数を宣言した後、その変数への書き込み、あるいはその変数からの読み込みをする前に、ディスク上のファイル名と関連づけてファイルをオープンしなくてはならない。これには2つのやり方のいずれかを使う。典型的には次のようになる。

reset (ファイル変数, 'ファイル名.拡張子');
rewrite (ファイル変数, 'ファイル名.拡張子');

reset は読み込みのためにファイルをオープンし、 rewrite は書き込みのためにファイルをオープンする。reset でオープンされたファイルには readreadlnだけが使える。 rewrite でオープンされたファイルにはwritewritelnだけが使える。

Turbo Pascal は割り当て表記 (assign notation) を導入した。最初にファイル名を変数に割り当てれば、その変数を使うだけでreset あるいは rewrite を呼び出せるのである。

assign (ファイル変数, 'ファイル名.拡張子');
reset (ファイル変数);

パスを表現する方法はオペレーティング・システムによって異なる。 Windows のユーザなら DOS の遺産のためにバック・スラッシュとドライブを表す文字を使うだろう (たとえば、 c:\directory\name.pas)。一方、 MacOS X と Linux では UNIX の遺産で普通のスラッシュ(forward slashes) を使うことになるだろう。

ファイルで作業をした後には、次のようにしてファイルを閉じることができる。

close (ファイル識別子);

ここにはファイルを使用したプログラム例を示す。このプログラムは Turbo Pascal と DOS 用に書かれており、file1.txt の最初の文字からなる file2.txt を作り出す。

program CopyOneByteFile;
 
var
   mychar : char;
   filein, fileout : text;
 
begin
   assign (filein, 'c:\file1.txt');
   reset (filein);
   assign (fileout, 'c:\file2.txt');
   rewrite (fileout);
   read (filein, mychar);
   write (fileout, mychar);
   close(filein);
   close(fileout)
end.
previous contents next