CStdioFile::Seek
Перемещает указатель в предварительно открытом файле.
virtual ULONGLONG Seek(
LONGLONG lOff,
UINT nFrom
);
Параметры
lOff
Число байт, чтобы переместить указатель.nFrom
Режим перемещения указателя.Должно быть одно из следующих значений:CFile::begin: Переместите байты lOff указателя файла front с начала файла.
CFile::current: Переместите байты lOff указателя файла от текущей позиции в файле.
CFile::end: Переместите байты lOff указателя файла в конце файла.Обратите внимание, что lOff должно быть отрицательным поиск в существующий файл. положительные значения искают после конца файла.
Возвращаемое значение
Если запрошенный законна позиция, Seek возвращает новое смещение в байтах от начала файла.В противном случае возвращаемое значение не определено и CFileException объект; в противном случае вызывается исключение.
Заметки
Функция Seek обеспечивает прямой доступ к содержимому файла, перемещая указатель на указанное число, либо относительно абсолютного.Фактически никакие данные не считываются во время поиска.Если позиция превышает размер запрошенного файла, размер файла будет расширена в этой позиции, и исключение не создается.
При открытии файла, указатель файл расположен на смещение 0, начало файла.
Эта реализация Seek основана на функции библиотеки времени выполнения fseek(CRT).Существует ряд ограничений на потреблении 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