CStdioFile::Seek
Riposizionare il puntatore in un file già aperto.
virtual ULONGLONG Seek(
LONGLONG lOff,
UINT nFrom
);
Parametri
lOff
Numero di byte per spostare il puntatore.nFrom
Modalità di spostamento del puntatore. Deve essere uno dei seguenti valori:CFile::begin: Spostare i byte lOff del puntatore del file in avanti dall'inizio del file.
CFile::current: Spostare i byte lOff del puntatore del file dalla posizione corrente nel file.
CFile::end: Spostare i byte lOff del puntatore del file dalla fine del file. Si noti che lOff deve essere negativo trovare il file esistente, i valori positivi cercheranno oltre la fine del file.
Valore restituito
Se la posizione richiesta è valida, Seek restituisce il nuovo offset di byte dall'inizio del file. In caso contrario, il valore restituito è definito e un oggetto CFileException viene generato.
Note
La funzione Seek consente l'accesso casuale al contenuto di un file sposta il puntatore una quantità specificata, completamente o relativamente. Nessun dati effettivamente letta durante la ricerca. Se la richiesta posizione è maggiore delle dimensioni del file, la lunghezza di file viene estesa a quella posizione e non viene generata alcuna eccezione.
Quando un file viene aperto, il puntatore del file viene posizionato a offset 0, all'inizio del file.
Questa implementazione Seek è basata sulla funzione fseekla libreria di runtime (CRT). Esistono vari limiti sull'utilizzo Seek flussi aperti in modalità testo. Per ulteriori informazioni, vedere fseek, _fseeki64.
Esempio
Di seguito viene illustrato come utilizzare Seek per spostare il puntatore di 1000 byte dall'inizio del file cfile. Si noti che Seek non vengono letti i dati, è necessario chiamare avanti CStdioFile::ReadString per leggere i dati.
CStdioFile cfile(_T("Stdio_Seek_File.dat"), CFile::modeWrite |
CFile::modeCreate);
LONGLONG lOff = 1000;
ULONGLONG lActual = cfile.Seek(lOff, CFile::begin);
Requisiti
Header: afx.h