CStdioFile::Seek
若要重新定位之前已開啟的檔案的指標。
virtual ULONGLONG Seek(
LONGLONG lOff,
UINT nFrom
);
參數
lOff
將指標的位元組數目。nFrom
指標移動方式。 必須是下列其中一個值:CFile::begin:移動檔案指標 lOff 位元組轉送開頭的位移。
CFile::current:從檔案中目前的位置移動檔案指標 lOff 位元組。
CFile::end:從檔案結尾移動檔案指標 lOff 位元組。 請注意 lOff 必須是負數尋找到現有檔案;正值會尋找超過檔案結尾。
傳回值
如果要求的位置是合法的, Seek 傳回新的位元組位移 (Offset) 檔案。 否則,傳回值為未定義,而且 CFileException 物件擲回。
備註
Seek 函式移動指標允許檔案的內容的隨機存取每個指定的數量,絕對或相對。 在搜尋期間,資料不會實際讀取。 如果要求的位置大於檔案大小,檔案長度會擴充至該位置,因此,例外狀況將不會擲回。
在開啟檔案時,檔案指標放置於位移 0,檔案的開頭。
Seek 的這個實作會根據執行階段程式庫 (CRT) 函式 fseek。 在 Seek 用法的數個限制在文字模式下開啟的資料流。 如需詳細資訊,請參閱 fseek _fseeki64。
範例
下列範例顯示如何使用 Seek 移動游標 1000 個位元組從初始 cfile 檔案。 請注意 Seek 不讀取資料,因此,您必須在後續呼叫 CStdioFile::ReadString 讀取資料。
CStdioFile cfile(_T("Stdio_Seek_File.dat"), CFile::modeWrite |
CFile::modeCreate);
LONGLONG lOff = 1000;
ULONGLONG lActual = cfile.Seek(lOff, CFile::begin);
需求
Header: afx.h