CStdioFile::Seek
Reposiciona o ponteiro em um arquivo aberto anteriormente.
virtual ULONGLONG Seek(
LONGLONG lOff,
UINT nFrom
);
Parâmetros
lOff
Número de bytes para mover o ponteiro.nFrom
Modo de movimentação de ponteiro.Deve ser um dos seguintes valores:CFile::begin: Mover os bytes de lOff do ponteiro do arquivo dianteiros do início do arquivo.
CFile::current: Mover os bytes de lOff do ponteiro do arquivo da posição atual no arquivo.
CFile::end: Mover os bytes de lOff do ponteiro do arquivo do final do arquivo.Observe que lOff deve ser negativo buscar no arquivo; existente os valores positivos buscarão após o final do arquivo.
Valor de retorno
Se a posição solicitada é legal, Seek retorna o novo deslocamento de bytes do início do arquivo.Caso contrário, o valor de retorno é indefinida e um objeto de CFileException é lançada.
Comentários
A função de Seek permite de acesso aleatório aos conteúdo de um arquivo movendo o ponteiro um determinar a quantidade especificada, ou relativamente.Nenhum dado é realmente lida durante a busca.Se a posição solicitada é maior do que o tamanho do arquivo, o tamanho do arquivo será estendido para essa posição, e nenhuma exceção será lançada.
Quando um arquivo é aberto, o ponteiro do arquivo está localizado no deslocamento 0, o início do arquivo.
Essa implementação de Seek é baseada em função fseekda biblioteca em tempo de execução (CRT).Há vários limites o uso de Seek em fluxos abertos no modo de texto.Para mais informações, consulte fseek, _fseeki64.
Exemplo
O exemplo a seguir mostra como usar Seek para mover o ponteiro 1000 bytes do início do arquivo de cfile .Observe que Seek não ler dados, portanto você deve chamar CStdioFile::ReadString posteriormente para ler dados.
CStdioFile cfile(_T("Stdio_Seek_File.dat"), CFile::modeWrite |
CFile::modeCreate);
LONGLONG lOff = 1000;
ULONGLONG lActual = cfile.Seek(lOff, CFile::begin);
Requisitos
Cabeçalho: afx.h