目次に戻る
一覧ページに戻る
CPFileCtrl::Seek
2001/12/21 update.
ファイルポインタを移動します。

書式

  CP_BOOL Seek(int Offset,int Form);

パラメータ


Offset
ファイルポインタを移動させる量(バイト単位)を指定します。
Form
ファイルポインタの移動開始位置を指定します。以下の3つより選択してください。
CP_FILE_BEGIN ... ファイルの先頭から
CP_FILE_CURRENT ... ファイルの現在位置から
CP_FILE_END ... ファイルの終わりから

解説


ファイルポインタを指定の位置まで移動させます。
ファイルポインタとは、ファイル上の読み込み・または書き込みの位置を示すものです。
指定バイト分だけ読み込みを飛ばす、始めから読み込み直し、ファイルの末尾より読み込み、などの場合は、Seekで位置決めしてから読み込むようにしてください。





ファイル"tmp01.dat"を作成し、これよりSeekで移動後のデータを取得します。

CPFileCtrl f;
char szBuff[]="ABCDEFG";
char rdDat[16];
int pos;

//ファイルを新規作成(書き込み専用で開く)
if(f.Create("tmp01.dat")){
    //ファイルにデータを書き込み
    f.Write(szBuff,strlen(szBuff));

    //ファイルを閉じる
    f.Close();
}

//ファイルを読み込み専用で開く
if(f.Open("tmp01.dat")){
    //ファイルポインタをファイルの先頭より3バイト先に移動
    f.Seek(3,CP_FILE_BEGIN);

    //ファイルよりデータを読み込み
    memset(rdDat,0,15);
    f.Read(rdDat,3);

    //ファイルポインタの位置を取得
    pos=f.GetOffset();

    //ファイルを閉じる
    f.Close();
}

この例では、
ファイル"tmp01.dat"を作成し、"ABCDEFG"と書き込みます。
その後、同じファイルを開き、Seekによりファイルポインタをファイルの先頭より3バイト先に移動させ、そこから3バイト分を「Read」で読み込みます。
rdDat[]には"DEF"が入ります。
「GetOffset」により、pos=6が入ります。


ビルド時に必要なファイル


ライブラリ :CPartsLib.lib (Macintoshの場合は、CPartsCW.a)
ヘッダ :CPFileCtrl.h


関連リンク


CPFileCtrlクラス
CPFileCtrl::GetOffset