Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
portuguese
Composition Setup
import.css=/download/attachments/3279126062824/newLayouttecnologia.css

Pagetitle
FOpen
FOpen

...

...

Função: FOpen

Abre um arquivo binário.
É uma função de tratamento de arquivo de baixo nível que abre um arquivo binário existente para que possa ser lido e escrito, dependendo do argumento no parâmetro <nModo>.

Sintaxe

Bloco de código
collapsefalse
FOpen( <
cArq>
 cArq >, [ nModo ], [ xParam3 ], [
lChangeCase
 lChageCase ] )
--> nRet

Parâmetros

...

Nome

Tipo

Descrição

Obrigatório

Referência

cArq

...

caractere

Indica o nome do arquivo que será aberto que inclui o path, caso haja um.

X

 

nModo

...

numérico

Indica o modo de acesso DOS solicitado que indicará como o arquivo aberto deve ser acessado. O acesso é uma das categorias relacionadas na tabela A e as retrições de compartilhamento estão na tabela B. O modo padrão é 0 (zero), aberto para leitura, com compartilhamento por compatibilidade. Ao definirmos o modo de acesso, deve-se somar um elemento da tabela A com a B.

 

 

xParam3

...

qualquer

Compatibilidade. Deve ser informado o valor nulo ( NIL )

 

 

...

lChageCase

...

lógico

Indica se, verdadeiro (.T.), a busca do nome do arquivo deve ser em letra minúscula; caso contrário, falso (.F.), a busca será realizada conforme foi escrito. Conteúdo padrão = .T.

 

 

Retorno

Nome

...

Tipo

...

Descrição

nRet

...

numérico

Retorna o handle de arquivo aberto, na faixa de 0 a 65.535. Caso ocorra um erro, o retorno será -1.

Observações

  • Toda vez que houver um erro na abertura do arquivo, a função FError() pode ser utilizada para retornar o código de erro do sistema operacional. Por exemplo, caso o arquivo não exista, a

...

  • função FOpen()

...

  • retornará -1

...

  • e FError() retornará 2 para indicar que o arquivo não foi encontrado.
  • Caso o arquivo especificado seja aberto, o valor retornado é o handle (manipulador) do sistema operacional para o arquivo. Este valor é semelhante a um alias no sistema de banco de dados e é exigido para identificar o arquivo aberto para as outras funções de tratamento de arquivo. Portanto, é importante sempre atribuir o valor que foi retornado a uma variável para uso posterior.

 

Importante
Nota
icontrue
titleAtenção

Esta função permite acesso de baixo nível a arquivos e dispositivos DOS -

 

Disk Operating System (sistema operacional de disco). Desta forma, recomenda-se muita cautela na utilização e um conhecimento detalhado do sistema operacional.

Nota
icontrue
titleAtenção

Acessando arquivo em outros diretórios:

 Essa

Essa função não obedece os comandos Set Default e Set Path. Ao invés disso, FOpen() procura na configuração de diretório e path DOS,

 

a não ser que um path seja declarado explicitamente com parte do argumento no parâmetro.

  

 

Tabela A - Modos de acesso a

...

arquvios binários

...

Modo

...

Constante (fileio.ch)

...

Operação

...

0

FO_READ

Aberto para leitura (padrão)

...

...

1

FO_WRITE

Aberto para gravação

...

...

2

FO_READWRITE

Aberto para leitura e gravação

...

 

 

Tabela B

...

- Modos de acesso de compartilhamento a arquivos binários

...

Modo

...

Constante (fileio.ch)

Operação

0

FO_COMPAT

Modo de compatibilidade (padrão).

16

FO_EXCLUSIVE

Acesso total exclusivo.

32

FO_DENYWRITE

Acesso bloqueado a gravação de outros processos ao arquivo.

48

FO_DENYREAD

Acesso bloqueado a leitura de outros processos ao arquivo.

64

FO_DENYNONE

Acesso compartilhado. Permite a

...

leitura e gravação por outros processos ao arquivo.

64

FO_SHARED

Igual à FO_DENYNONE

Exemplos

.

 

Exemplos
Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
#include 'fileio.ch'...


// Abrir o arquivo error.log para escrita e gravação compartilhada.


User Function exemplo()
  nHandle := fopen('\sigaadv\error.log' , FO_READWRITE + FO_SHARED )


  If nHandle == -1


    MsgStop('Erro de abertura : FERROR '+str(ferror(),4))

Else

  Else
    MsgStop('Arquivo aberto com sucesso.')


    fclose(nHandle) // Fecha arquivo

Endif
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
 

  Endif
Return

Veja também