Descrição
FOpen [AS]
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
| FOpen( <cArq>, <nModo>, <uParam3>, <lChangeCase> ) |
Parâmetros
| Par |
Nome |
Tipo |
Descrição |
Default |
Obg |
Ref |
01
|
cArq
|
Caracter |
Indica o nome do arquivo que será aberto que inclui o path, caso haja um
|
|
X |
|
| 02 |
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 |
|
|
|
| 03 |
uParam3 |
Indefinido |
Compatibilidade |
|
|
|
| 04 |
lChangeCase |
Boolean |
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 |
.T. |
|
|
Retorno
| Retorno |
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.
|
Exemplo
#INCLUDE "TOTVS.CH"
#INCLUDE 'FILEIO.CH'
User Function FOpen()
Local nHandle := fopen('\TEST.TXT' , FO_READWRITE + FO_SHARED )
If nHandle == -1
MsgStop('Erro de abertura : FERROR ' + Str(fError(), 4), 'UniversoADVPL' )
Else
MsgInfo('Arquivo aberto com sucesso.', 'UniversoADVPL')
fclose(nHandle) // Fecha arquivo
Endif
Return( Nil )
Resultado
Informações adicionais
|
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
|
NMODO – TABELA A – MODOS DE ACESSO A ARQUIVOS BINÁRIOS
| 0 |
FO_READ
|
Aberto para leitura (padrão).
|
| 1 |
FO_WRITE
|
Aberto para gravação
|
| 2 |
FO_READWRITE
|
Aberto para leitura e gravação
|
NMODO – TABELA B – MODOS DE ACESSO DE COMPARTILHAMENTO A ARQUIVOS BINÁRIOS
| 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
|
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎