ファイルポインタを移動します。
書式
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