FSEEK()
 Coloca o ponteiro de arquivo binário em uma nova posiçao
------------------------------------------------------------------------------

 Sintaxe

     FSEEK(<nHandle>, <nDeslocamento>, [<nOrigem>]) --> nPosiçao

 Argumentos

     <nHandle> é o handle de arquivo obtido de FOPEN() ou FCREATE(), ou
     algum que tenha sido pré-definido pelo DOS.

     <nDeslocamento> é o número de bytes que o ponteiro de arquivo será
     movido a partir da posiçao definida por <nOrigem>.  Pode ser um número
     positivo ou negativo, dependendo da direçao na qual o ponteiro será
     movido.

     <nOrigem> define a posiçao inicial do ponteiro de arquivos antes
     que FSEEK() seja executado.  O valor padrao é zero, que representa o
     início do arquivo.  Caso <nOrigem> seja o final do arquivo,
     <nDeslocamento> deve ser zero ou negativo.

     Tabela 5-19: Métodos de Movimentaçao de Ponteiro
     ------------------------------------------------------------------------
     Origem         Fileio.ch         Descriçao
     ------------------------------------------------------------------------
     0              FS_SET            A partir do início do arquivo
     1              FS_RELATIVE       A partir da posiçao corrente
     2              FS_END            A partir do final do arquivo
     ------------------------------------------------------------------------

 Retorno

     FSEEK() retorna a nova posiçao do ponteiro de arquivo com relaçao ao
     início do arquivo (posiçao 0) na forma de um valor numérico inteiro.
     Este valor nao leva em conta a posiçao original do ponteiro de
     arquivos.

 Descriçao

     FSEEK() é uma funçao de tratamento de arquivos de baixo nível que move
     o ponteiro de arquivo para frente ou para trás em um arquivo binário
     aberto, porém sem ler o conteúdo deste arquivo.  A posiçao inicial e
     offset sao especificados como argumentos de funçao, e é retornada a
     nova posiçao do ponteiro.  Mesmo tendo sido especificados os argumentos
     de funçao, o ponteiro de arquivos nao pode ser movido para além dos
     limites de início ou final de arquivo.

     -----------------------------------------------------------------------
     . Aviso

     Esta funçao permite acesso de baixo nível a arquivos e dispositivos do
     DOS.  Ela deve ser utilizada com extremo cuidado e exige que se conheça
     a fundo o sistema operacional.
     -----------------------------------------------------------------------

 Exemplos

       O exemplo a seguir utiliza FSEEK() para determinar o tamanho
        de um arquivo procurando zero bytes a partir do final do arquivo.
        Depois, o ponteiro de arquivo volta ao início do arquivo procurando
        zero bytes a partir do início:

        #include "Fileio.ch"
        //
        // Abre arquivo somente para leitura
        IF (nHandle := FOPEN("Temp.txt")) >= 0
           //
           // Pega tamanho do arquivo
           nLength := FSEEK(nHandle, 0, FS_END)
           //
           // Reposiciona arquivo no início de arquivo
           FSEEK(nHandle, 0)
        ELSE
           ? "Erro de abertura:", FERROR()
           BREAK
        ENDIF

       Para posicionar o ponteiro de arquivos no último byte de um
        arquivo binário, utilize a seguinte pseudo-funçao:

        #define FileBottom(nHandle) (FSEEK(nHandle, 0, 2))

       Para posicionar o ponteiro de arquivos no primeiro byte de um
        arquivo binário, use uma pseudo-funçao da seguinte forma:

        #define FileTop(nHandle)    (FSEEK(nHandle, 0))

       Para informar a posiçao atual do ponteiro de arquivos em um
        arquivo binário especificado, utilize a seguinte pseudo-funçao:

        #define FilePos(nHandle)    (FSEEK(nHandle, 0, 1))

 Arquivos:  Biblioteca CLIPPER.LIB, arquivo header Fileio.ch.
 To download this example - click here.

See Also: FCREATE() FERROR() FOPEN() FREAD() FREADSTR() FWRITE()