TFileStream


目次に戻る


プログラムを作っている時、ファイルの入出力というものは避けて通れない。
C言語でプログラミングする時はfopen、fcloseを愛用している方が多いと思うが、 BorlandC++BuilderのVCLを使ってプログラミングをする場合は TFileStream クラスを使用するクセをつけておいた方が、VCLとの相性が高くなってプロ グラム全体がすっきりする傾向にある。
 
ファイルの読み書きを行う場合は次の3つの手順を踏む必要があります。
  1. ファイルを開いて、読み書きができる状態にする
  2. データをファイルに書き込んだり、ファイルからデータを読み込んだりする。
  3. ファイルを閉じる。
TFileStreamを使用してファイルの中のデータを読み込む例とファイルにデータを書き込 む例を紹介しましょう。
 
// 例1:ファイル(c:\test.txt)の中のデータを読み込む例
char buff[100];
TFileStream *ifp;
AnsiString fname = "c:\\test.txt";

// ファイルを開いて、データの読み込みができる状態にする。
try {
    ifp = new TFileStream( fname , fmOpenRead );
} catch( ... ){
    // ファイルが開けなかった
    ShowMessage(fname + "が開けませんでした。");
    return;
}
 
// ファイルからデータを読み込みbuff変数に格納(最大100バイト)
ifp->Read( buff, 100 );

/* ここからは読み込んだデータのデバッグ用のコード。読み込んだデータは文字列 と仮定する為、念のため最後に'\0'をつける。 */
buff[99] = '\0';
ShowMessage(buff);

// ファイルを閉じる
delete ifp;
ifp = NULL;
 



 
// 例2:ファイル(c:\test.txt)にデータを書き込む例
char buff[100]="あいうえおかきくけこ";
TFileStream *ofp;
AnsiString fname = "c:\\test.txt";

// ファイルを開いて、データの読み込みができる状態にする。
try {
    ofp = new TFileStream( fname , fmCreate );
} catch( ... ){
    // ファイルが開けなかった
    ShowMessage(fname + "が開けませんでした。");
    return;
}
 
// ファイルからデータを読み込みbuff変数に格納(最大100バイト)
ofp->Write( buff, 100 );

// ファイルを閉じる
delete ofp;
ofp = NULL;

TFileStreamの欠点は、fprintf,fscanfの様な動作ができないことです。fprintf、fscanfのよ うな文字列処理をしたい場合は従来のようにfopenを使った方がよいです。

目次に戻る