Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 3 Próxima »

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

FOpen ( < cArq>, [ nModo], [ xParam3], [ lChangeCase] ) --> nRet

 

NomeTipoDescriçãoObrigatórioReferência
cArqCaracterIndica o nome do arquivo que será aberto que inclui o path, caso haja um.X 
nModoNuméricoIndica 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.  
xParam3QualquerCompatibilidade.  
lChangeCaseLógicoIndica 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.  

 

nRet
    (numerico)
  • Retorna o handle de arquivo aberto, na faixa de 0 a 65.535. Caso ocorra um erro, o retorno será -1.
  • 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
  • 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.
  • Acessando arquivo em outros diretórios: 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 arquivos binários

modoconstante (fileio.ch)operação
 0FO_READAberto para leitura (padrão).
 1FO_WRITEAberto para gravação.
 2FO_READWRITEAberto para leitura e gravação.

 

 


Tabela B - Modos de acesso de compartilhamento a arquivos binários

modoconstante (fileio.ch)Operação
0FO_COMPATModo de compatibilidade (padrão).
16FO_EXCLUSIVEAcesso total exclusivo.
32FO_DENYWRITEAcesso bloqueado a gravação de outros processos ao arquivo.
48FO_DENYREADAcesso bloqueado a leitura de outros processos ao arquivo.
64FO_DENYNONEAcesso compartilhado. Permite a leitura e gravação por outros processos ao arquivo.
64FO_SHAREDIgual à FO_DENYNONE.

 

#include 'fileio.ch'...
// Abrir o arquivo error.log para escrita e gravação compartilhada.
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
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

 

  • Sem rótulos