Aplicación
Contenido
Índice 🔎︎

# Instrucción Put

Escribe un registro en un archivo relativo o una secuencia de bytes en un archivo binario.

Consulte también: instrucción Get

## Sintaxis:

    Put [#] NúmeroArchivo As Integer, [posición], Variable

## Parámetros:

NúmeroArchivo: Cualquier expresión entera que defina el archivo en el que se desea escribir.

Posición: En archivos relativos (archivos de acceso aleatorio), el número del registro que se desee escribir.

En archivos binarios (acceso binario), la posición del byte del archivo en que se desee empezar a escribir.

Variable: Nombre de la variable que se desee escribir en el archivo.

Nota para archivos relativos: Si el contenido de esta variable no coincide con la longitud del registro que se especifica en la cláusula Len de la instrucción Open, el espacio entre el final del registro escrito recientemente y el siguiente se rellena con los datos existentes del archivo al que está escribiendo.

Nota para archivos binarios: El contenido de las variables se escribe en la posición especificada y el puntero del archivo se inserta directamente después del último byte. No se deja espacio entre los registros.

## Ejemplo:

    Sub ExampleRandomAccess

    Dim iNumber As Integer

    Dim sTexto As Variant ' Debe ser de tipo Variant

    Dim aFile As String

        aFile = "c:\data.txt"

        iNumber = Freefile

        Open aFile For Random As #iNumber Len=32

        Seek #iNumero,1 ' Posición donde iniciar la escritura

        Put #iNumber,, "Esta es la primera línea de texto" ' Rellenar la línea con texto

        Print #iNumero, "Esta es la segunda línea de texto"

        Print #iNumero, "Esta es la tercera línea de texto"

        Seek #iNumber,2

        Get #iNumber,,sText

        Print sText

        Close #iNumber

        iNumber = Freefile

        Open aFile For Random As #iNumber Len=32

        Get #iNumber,2,sText

        Put #iNumero,,"Esto es un texto nuevo"

        Get #iNumber,1,sText

        Get #iNumber,2,sText

        Put #iNumero,20,"Este es el texto del registro 20"

        Print Lof(#iNumber)

        Close #iNumber

    End Sub