Á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/6062824/tecnologia.css

Pagetitle
FOpen
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>.

...

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

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.

...

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

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
    MsgStop('Arquivo aberto com sucesso.')
    fclose(nHandle) // Fecha arquivo
  Endif
Return

...