FOpen/FClose
Abre e fecha arquivo em modo baixo nivel (low-level file IO). Retorna handle numerico usado por FRead/FWrite/FSeek.
Assinatura: nHandle := FOpen(cPath, [nModo]) // FClose(nHandle)
Retorna: Numeric (handle) / NIL (FClose)
FOpen abre arquivo no AppServer pra leitura/escrita binaria. Retorna handle numerico. SEMPRE par com FClose — esquecer vaza file descriptor (esgota recurso do SO).
Modos
| Modo | Significado |
|---|---|
| 0 | Leitura (padrao) |
| 1 | Escrita |
| 2 | Leitura + escrita |
Sintaxe
nHandle := FOpen(cArq, 0)
If nHandle < 0
ConOut("Erro abrindo arquivo: " + cValToChar(FError()))
Return
EndIf
cBuffer := Space(4096)
nLido := FRead(nHandle, @cBuffer, 4096)
FClose(nHandle)
Pegadinhas
- Retorno -1 indica erro — sempre cheque com
FError(). - FClose ESQUECIDO = handle vazado. Em loop grande, pode esgotar limite do SO.
- Begin Sequence + Recover sempre, pra fechar handle em caso de excecao.
- MemoRead e mais simples pra arquivos pequenos.
- Modo 1 trunca arquivo — abre vazio. Pra append use modo 2 + FSeek.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cPath | Character | sim | Caminho do arquivo. |
nModo | Numeric | não | 0=leitura, 1=escrita, 2=leit+esc. |