Поделиться через


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

См. также

Ссылки

Класс CStdioFile

Диаграмма иерархии

Класс CFileException

CStdioFile::ReadString

CFile::Read