Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/6062824/tecnologia.css
|
Pagetitle | ||||
---|---|---|---|---|
|
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 | ||
---|---|---|
| ||
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#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 |
...