CStdioFile::Seek
Ordnet den Zeiger in einer zuvor geöffneten Datei neu.
virtual ULONGLONG Seek(
LONGLONG lOff,
UINT nFrom
);
Parameter
lOff
Anzahl Bytes, um den der Zeiger zu verschieben.nFrom
Zeigerbewegungsmodus.Muss einem der folgenden Werte:CFile::begin: Verschieben Sie den Dateizeiger lOff Bytes vorwärts vom Anfang der Datei.
CFile::current: Verschieben Sie den Dateizeiger lOff Bytes von der aktuellen Position in der Datei.
CFile::end: Verschieben Sie den Dateizeiger lOff Bytes vom Ende der Datei.Beachten Sie, dass lOff negativ sein muss, in die vorhandene Datei zu suchen; positive Werte suchen nach dem Ende der Datei.
Rückgabewert
Wenn die angeforderte Position gültig ist, gibt Seek den neuen Byteoffset vom Anfang der Datei zurück.Andernfalls wird der Rückgabewert undefiniert und ein CFileException-Objekt wird ausgelöst.
Hinweise
Die Seek-Funktion ermöglicht wahlfreien Zugriff auf den Inhalt einer Datei, indem Sie den Zeiger ein bestimmte Datenmenge, absolut oder relativ verschoben wird.Keine Daten werden tatsächlich während der Suche gelesen.Wenn die angeforderte Position größer als die Größe der Datei ist, wird die Dateilänge zu dieser Position erweitert, und es wird keine Ausnahme ausgelöst.
Wenn eine Datei geöffnet, wird der Dateizeiger an Offset 0, der Anfang der Datei positioniert.
Diese Implementierung von Seek basiert auf der Funktion fseek der Laufzeitbibliothek (CRT).Es gibt einige Einschränkungen auf die Verwendung von Seek auf den Streams, die im Textmodus geöffnet sind.Weitere Informationen finden Sie unter fseek, _fseeki64.
Beispiel
Im folgenden Beispiel wird gezeigt, wie Seek verwendet, um den Zeiger 1000 Bytes vom Anfang cfile Datei zu verschieben.Beachten Sie, dass Seek nicht Daten liest, müssen Sie CStdioFile::ReadString anschließend aufrufen, um Daten zu lesen.
CStdioFile cfile(_T("Stdio_Seek_File.dat"), CFile::modeWrite |
CFile::modeCreate);
LONGLONG lOff = 1000;
ULONGLONG lActual = cfile.Seek(lOff, CFile::begin);
Anforderungen
Header: afx.h