Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/3279126062824/newLayouttecnologia.css |
|
Pagetitle | ||||
---|---|---|---|---|
|
...
...
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 | ||
---|---|---|
| ||
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.
Nota | ||||||
---|---|---|---|---|---|---|
| ||||||
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 | ||||
---|---|---|---|---|
| ||||
Acessando arquivo em outros diretórios: EssaEssa 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
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| .||||||||||
#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
|