Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/327912/newLayout.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 ] )--> 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 ) | ||
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.
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)) ElseElse MsgStop('Arquivo aberto com sucesso.') fclose(nHandle) // FechaarquivoEndif Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server arquivo
Endif
Return
|