Versões comparadas

Chave

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

Incluir Página
tec:FOpen
tec:FOpen

Sintaxe

 

FOPEN( <expressão caracter>  [ , <expressão numérica> ]  )

 

Propósito

 

Abre um arquivo binário, fornecendo o respectivo número de manipulação do arquivo.

 

Argumentos

 

<expressão caracter>

 

Define o nome do arquivo que será aberto, incluindo a pasta e o drive, caso não sejam os correntes.

 

<expressão numérica>

 

Define o modo de abertura do arquivo, indicando como ele poderá ser acessado. Se este argumento não for especificado, será assumido o padrão zero. Os valores possíveis são:

 

Modo

Fileio.ch

Operação

0

FO_READ

Apenas leitura.

1

FO_WRITE

Apenas gravação.

2

FO_READWRITE

Leitura e gravação.

 

Utilização

 

O número de manipulação do arquivo fornecido pela função FOPEN() varia entre zero e 65.535. Se ocorrer algum erro, a função retorna o valor -1.

 

Como esse número de manipulação do arquivo é necessário para identificá-lo junto às outras funções de manipulação de arquivos, o valor fornecido pela função FOPEN() deverá sempre ser armazenado em uma variável de memória, para utilização posterior.

 

Dicas

 

Sempre que ocorrer um erro de abertura de arquivo, a função FOPEN() fornecerá o valor -1. Neste caso, a função FERROR() poderá ser utilizada para determinar o tipo de erro ocorrido. Por exemplo, se FOPEN() fornecer o valor -1 e FERROR() fornecer o valor 2, significará que o arquivo especificado não foi encontrado. Consulte a função FERROR() para verificar a lista de erros.

 

O número de manipulação de arquivos, fornecido pelas funções FOPEN() e FCREATE(), equivale ao alias de um arquivo de dados.

 

Exemplos

 

Neste exemplo, a função FOPEN() é utilizada para abrir o arquivo Teste.txt no modo de leitura e gravação.

 

#include “Protheus.ch”

 

FUNCTION AbreArq()

 

LOCAL nArq := FOPEN(“Teste.txt”, FO_READWRITE)

 

IF FERROR() <> 0 .AND. nArq == -1

          MsgAlert(“Erro de abertura. Código: “ + STR(FERROR()))

 

          RETURN

ENDIF