Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/327912/newLayout.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 ] )
--> 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 )



lChangeCase

...

lógico

...

Se verdadeiro (.T.),

...

nomes de arquivos e pastas serão convertidos para letras minúsculas; caso contrário, falso (.F.),

...

não será feito nenhum ajuste no nome do arquivo informado. Valor padrão (.T.). Veja maiores informações em Observações.



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

  • O parâmetro opcional lChangeCase foi introduzido a partir do build 7.00.131227A pois em sistemas LINUX/UNIX, existe a diferenciação entre maiúsculo e minúsculo em nomes de arquivos ou pastas. Quando este parâmetro for informado, terá prioridade sobre comportamento de Case Sensitive definido pelas chaves de ini CASESENSITIVE ou SERVERTYPE. Porem, quando não especificado o parâmetro, o valor padrão (.T.) fica condicionado ao que está configurado nessas chaves.
  • 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 
arquivoEndif Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
arquivo
  Endif
Return

Veja também