nHandleHandle válido obtido por FOpen/FCreate; zero também é válido.
AdvPL GuiaFSeek( nHandle, nOffSet, [nOrigem] ) --> nRetPosiciona o ponteiro de um arquivo em bytes.
FSeek calcula o deslocamento a partir de FS_SET, FS_RELATIVE ou FS_END e devolve a posição absoluta desde zero. Mover ao fim com deslocamento zero permite obter tamanho, mas também altera o cursor. O exemplo comunitário mostra essa técnica e volta ao início; a adaptação abre somente leitura, consulta FError antes de continuar e fecha seu handle. Não confundir byte com caractere nem posição de arquivo com RecNo de tabela. (TOTVS, s.d., ref. 1)
FSeek( nHandle, nOffSet, [nOrigem] ) --> nRetnHandleHandle válido obtido por FOpen/FCreate; zero também é válido.
nOffSetDeslocamento em bytes.
nOrigemFS_SET=0, FS_RELATIVE=1, FS_END=2; padrão início.
Nova posição absoluta em bytes a partir do início.
#Include "Protheus.ch"
#Include "Fileio.ch"
User Function Ed396()
Local nHandle := -1
Local nErro := 0
Local nTamanho
// 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
nTamanho := FSeek(nHandle, 0, FS_END)
nErro := FError()
If nErro == 0
ConOut(cValToChar(nTamanho))
// Reposicionar antes de uma eventual leitura posterior.
FSeek(nHandle, 0, FS_SET)
Else
ConOut(cValToChar(nErro))
EndIf
If !FClose(nHandle)
ConOut(cValToChar(FError()))
EndIf
EndIf
Return NilTamanho do arquivo de teste em bytes ou diagnóstico; nenhum valor fixo presumido. 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.