Usina BRAdvPL Guia
Entrar
← Todos os tópicos
FUNçãOEm revisão

FRead

FRead( nHandle, @cBufferVar, nQtdBytes ) --> nRet

Lê bytes em um buffer e devolve quantos foram lidos.

FReadAdvPL
01 · VISÃO GERAL

Visão geral

O retorno de FRead é numérico; os dados chegam ao buffer pré-alocado passado por referência. O texto do buffer não deve ser substituído pela quantidade retornada. Tanto o exemplo oficial antigo quanto o comunitário contêm trechos que não respeitam integralmente essa preparação: a adaptação usa Space(64), @cBuffer e nLidos separado. Uma leitura curta pode ser EOF ou erro; capture FError antes de fechar. O fragmento não imprime conteúdo de arquivo e não pressupõe 64 bytes disponíveis. (TOTVS, s.d., ref. 1)

02 · SINTAXE

Sintaxe

FRead( nHandle, @cBufferVar, nQtdBytes ) --> nRet

Parâmetros

nHandle
NuméricoObrigatório

Handle válido obtido por FOpen/FCreate; zero também é válido.

cBufferVar
CaractereObrigatório

Buffer de tamanho >= nQtdBytes, por referência.

nQtdBytes
NuméricoObrigatório

Máximo solicitado nesta leitura.

Retorno

Quantidade de bytes efetivamente lidos.

03 · EXEMPLO PRÁTICO

Exemplo comentado

#Include "Protheus.ch"
#Include "Fileio.ch"

User Function Ed393()
    Local nHandle := -1
    Local nErro := 0
    Local cBuffer := Space(64)
    Local nLidos
    // Arquivo ficticio existente no contexto de teste; leitura compartilhada.
    nHandle := FOpen("editorial-test.txt", FO_READ + FO_SHARED)
    If nHandle < 0
        nErro := FError()
        ConOut(cValToChar(nErro))
    Else
        // Buffer e tamanho separados do retorno numerico.
        nLidos := FRead(nHandle, @cBuffer, 64)
        nErro := FError()
        ConOut(cValToChar(nLidos))
        If nErro <> 0
            ConOut(cValToChar(nErro))
        EndIf
        If !FClose(nHandle)
            ConOut(cValToChar(FError()))
        EndIf
    EndIf
Return Nil
Resultado esperado

Contagem de até 64 bytes ou diagnóstico; o trecho é leitura única, não um leitor completo. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

BOAS PRÁTICAS
  • Conferir caminho, permissões, plataforma e propriedade do handle. Fechar somente handles obtidos pela própria rotina, inclusive em tratamento de erros da aplicação completa.
  • Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. FRead. TDN. Consulta em 2026-10-26.
  2. EURAI. ADVPL/Funcoes/Arquivos de Disco/FRead.PRW. universo_do_desenvolvedor_site, commit a5c83e9490302bdb4a0fc5a9d92c2d569a60773c. Exemplo analisado. Consulta em 2026-10-26.
Situação
Em revisão
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha