Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Incluir Página
tec:FSeek
tec:FSeek

Sintaxe

 

FSEEK( <expressão numérica 1>,  <expressão numérica 2>  [ , <expressão numérica 3> ] )

 

Propósito

 

Move o ponteiro do arquivo binário para uma nova posição.

 

Argumentos

 

< expressão numérica 1>

 

Define o número de manipulação que identifica o arquivo binário a ser processado. Esse número é obtido pelas funções FOPEN() ou FCREATE().

 

< expressão numérica 2>

 

Define o número de bytes no qual o ponteiro de arquivos deve ser deslocado, a partir da posição atual definida pela expressão numérica 3. Este número poderá ser positivo ou negativo, dependendo da direção na qual o ponteiro deverá ser movido (para frente ou para trás).

 

< expressão numérica 3>

 

Define a origem do deslocamento do ponteiro de arquivos, antes de ser iniciada a execução da função FSEEK(). É indicada por um dos valores relacionados na tabela abaixo. A origem padrão assumida pelo AdvPL é zero. Ou seja, o início do arquivo.

 

Origem

Fileio.ch

Descrição

0

FS_SET

A partir do início do arquivo.

1

FS_RELATIVE

A partir da posição atual do ponteiro.

2

FS_END

A partir do fim do arquivo.

 

Utilização

 

Todo arquivo binário possui um ponteiro associado. Este ponteiro é posicionado sobre cada um de seus bytes à medida que operações de abertura ( FOPEN() ), leitura ( FREAD() e FREADSTR() ), gravação ( FWRITE() ) ou posicionamento ( FSEEK() ) são efetuadas sobre eles.

 

Dicas

 

O ponteiro não pode ser deslocado além do início ou do fim do arquivo. Portanto, se a origem do deslocamento for o fim do arquivo, definido pela expressão numérica 2 igual à 2, a expressão numérica 1 deve resultar necessariamente num número negativo ou zero.

 

Exemplos

 

LOCAL cArq := FOPEN(“Teste.txt”)              // Abre o arquivo

LOCAL nTamanho := FSEEK(cArq, 0, 2)     // Determina o tamanho do arquivo

 

FSEEK(cArq, 0, 1)     // Fornece a posição atual do ponteiro

FSEEK(cArq, 0, 0)     // Retorna à posição inicial do ponteiro