Versões comparadas

Chave

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

Incluir Página
tec:FRead
tec:FRead

Sintaxe

 

FREAD( <expressão numérica 1>, @<variável caracter>, <expressão numérica 2> )

 

Propósito

 

Lê caracteres de um arquivo binário, armazenando-os numa variável de memória tipo caracter e fornecendo o número de bytes lidos.

 

Argumentos

 

< expressão numérica 1>

 

Define o número de manipulação que identifica o arquivo a ser lido. Este número é obtido pelas funções FOPEN() ou FCREATE().

 

< variável caracter>

 

Define o nome de uma variável caracter existente e iniciada, passada por referência através do prefixo @, para ser utilizada como um buffer de leitura. O tamanho desta variável deve ser, no mínimo, o mesmo definido pela expressão numérica 2. Cada caracter lido a partir do arquivo especificado será armazenado nesta variável.

 

< expressão numérica 2>

 

Define o número de bytes a serem lidos e armazenados no buffer, iniciando-se da localização atual do ponteiro de arquivos. O valor fornecido pela função FREAD(), quando a operação de leitura for bem sucedida, deve ser igual ao valor da expressão numérica 2. Um valor menor ou zero indica que foi encontrado o fim do arquivo ou que ocorreu algum erro de leitura.

 

Utilização

 

Qualquer tipo de caracter contido no arquivo é lido por FREAD(), incluindo caracteres de controle, o caracter nulo (“”) ou caracteres com código ASCII acima de CHR(127).

 

Para reposicionar o ponteiro de arquivos binários sem fazer uma leitura, deve-se utilizar a função FSEEK().

 

Dicas

 

As funções FREADSTR() e FSEEK() tem relação com a função FREAD(). A função FREADSTR() lê um determinado número de bytes de um arquivo binário até que seja encontrado o caracter CHR(0). A função FSEEK() apenas move o apontador de arquivo, não efetuando nenhuma leitura.

 

Sempre que ocorrer um erro de leitura de arquivo, a função FREAD() fornecerá o valor 0. Neste caso, a função FERROR() poderá ser utilizada para determinar o tipo de erro ocorrido. Por exemplo, se FREAD() fornecer o valor zero e FERROR() fornecer o valor 6, significará que o número especificado para identificar o arquivo é inválido. Consulte a função FERROR() para verificar a lista de erros.

 

Exemplos

 

O exemplo abaixo lê um bloco de caracteres com 128 bytes do arquivo Teste.txt.

 

LOCAL nBloco := 128

LOCAL cBuffer := SPACE(512)

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

LOCAL nBytes := 0

 

IF FERROR <> 0

          MsgAlert(“Erro no acesso ao arquivo nº “ + STR(FERROR()))

 

          RETURN

ELSE
          nBytes := FREAD(cArq, @cBuffer, nBloco)      // Lê os bytes

 

          IF nBytes <> nBloco

                    MsgAlert(“Erro de leitura nº “ + STR(FERROR()))

 

                    RETURN

          ELSE

                    MsgAlert(nBytes)     // Mostra os bytes lidos

          ENDIF

ENDIF