Usina BRGuía AdvPL
Ingresar
← Todos los temas
FUNCIóNEn revisión

FSeek

FSeek( nHandle, nOffSet, [nOrigem] ) --> nRet

Posiciona puntero de archivo en bytes.

FSeekAdvPL
01 · DESCRIPCIÓN GENERAL

Descripción general

FSeek desplaza desde FS_SET, FS_RELATIVE o FS_END y devuelve posición absoluta desde cero. Ir cero bytes desde final obtiene tamaño y cambia cursor. GitHub usa técnica y vuelve al inicio; adaptación solo lectura, consulta FError y cierra handle propio. Byte no es carácter ni posición de archivo RecNo. (TOTVS, s.f., ref. 1)

02 · SINTAXIS

Sintaxis

FSeek( nHandle, nOffSet, [nOrigem] ) --> nRet

Parámetros

nHandle
NuméricoObligatorio

Handle válido de FOpen/FCreate; cero también es válido.

nOffSet
NuméricoObligatorio

Desplazamiento en bytes.

nOrigem
NuméricoOpcional

FS_SET=0, FS_RELATIVE=1, FS_END=2; inicio predeterminado.

Retorno

Nueva posición absoluta en bytes desde inicio.

03 · EJEMPLO PRÁCTICO

Ejemplo comentado

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

User Function Ed396()
    Local nHandle := -1
    Local nError := 0
    Local nTamano
    // Archivo ficticio existente en contexto de prueba; lectura compartida.
    nHandle := FOpen("editorial-test.txt", FO_READ + FO_SHARED)
    If nHandle < 0
        nError := FError()
        ConOut(cValToChar(nError))
    Else
        nTamano := FSeek(nHandle, 0, FS_END)
        nError := FError()
        If nError == 0
            ConOut(cValToChar(nTamano))
            // Reposicionar antes de eventual lectura posterior.
            FSeek(nHandle, 0, FS_SET)
        Else
            ConOut(cValToChar(nError))
        EndIf
        If !FClose(nHandle)
            ConOut(cValToChar(FError()))
        EndIf
    EndIf
Return Nil
Resultado esperado

Tamaño del archivo de prueba en bytes o diagnóstico; sin valor fijo supuesto. En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

BUENAS PRÁCTICAS
  • Comprobar ruta, permisos, plataforma y propiedad del handle. Cerrar solo handles propios, incluido manejo de errores de aplicación completa.
  • En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

Contenido relacionado

REFERENCIAS
  1. TOTVS. FSeek. TDN. Consulta el 2026-10-26.
  2. EURAI. ADVPL/Funcoes/Arquivos de Disco/FSeek.PRW. universo_do_desenvolvedor_site, commit a5c83e9490302bdb4a0fc5a9d92c2d569a60773c. Exemplo analisado. Consulta el 2026-10-26.
Estado
En revisión
Página creada el
Última revisión el
Idioma original
Portugués
Revisión
Usina.BR
0 comentario(s) aprobado(s)

Comentarios

Todavía no hay comentarios aprobados.

Inicia sesión con Google o Microsoft para comentar.

Desarrollado con Usina Docs · Alpha