nHandleHandle válido obtido por FOpen/FCreate; zero também é válido.
AdvPL GuiaFRead( nHandle, @cBufferVar, nQtdBytes ) --> nRetLê bytes em um buffer e devolve quantos foram lidos.
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)
FRead( nHandle, @cBufferVar, nQtdBytes ) --> nRetnHandleHandle válido obtido por FOpen/FCreate; zero também é válido.
cBufferVarBuffer de tamanho >= nQtdBytes, por referência.
nQtdBytesMáximo solicitado nesta leitura.
Quantidade de bytes efetivamente lidos.
#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 NilContagem 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.
© 2026 Usina.BR. Todos os direitos reservados. TOTVS, Protheus, Microsiga e seus respectivos logotipos são marcas de seus titulares. O AdvPL Guia é independente e utiliza citações limitadas, atribuídas e justificadas por finalidade educativa. Consulte os Termos de Uso. Termos de Uso
Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.