Módulo
Conteúdo
Índice 🔎︎

# Instrução Put

Grava um registro em um arquivo relativo ou uma sequência de bytes em um arquio binário.

Veja também: instrução Get

## Sintaxe:

    Put [#] FileNumber As Integer, [position], Variable

## Parâmetros:

FileNumber: qualquer expressão de número inteiro que define o arquivo no qual você deseja gravar.

Position: Para arquivos relativos (arquivos de acesso aleatório), o número do registro a ser gravado.

Para arquivos binários (acesso binário), a posição do byte no arquivo onde você deseja iniciar a gravação.

Variable: nome da variável que você deseja gravar no arquivo.

Nota para arquivos relativos: Se o conteúdo desta variável não corresponder ao comprimento o registro especificado na cláusula Len da instrução Open, o espaço entre o fim do registro recém escrito e o próximo registro será preenchido com dados do arquivo no qual se está gravando.

Nota para arquivos binários: O conteúdo das variáveis é gravado na posição especificada, e o ponteiro do arquivo é inserido diretamente após o último byte. Nenhum espaço permanece entre os registros.

## Exemplo:

    Sub ExampleRandomAccess

    Dim iNumber As Integer

    Dim sText As Variant ' Deve ser um tipo de variante

    Dim aFile As String

        aFile = "c:\data.txt"

        iNumber = Freefile

        Open aFile For Random As #iNumber Len=32

        Seek #iNumber,1 ' Posição para iniciar gravação

        Put #iNumber,, "Esta é a primeira linha de texto" ' Preenche a linha com texto

        Put #iNumber,, "Esta é a segunda linha de texto"

        Put #iNumber,, "Esta é a terceira linha 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 #iNumber,,"Isto é um novo texto"

        Get #iNumber,1,sText

        Get #iNumber,2,sText

        Put #iNumber,20,"Este é o texto no registro 20"

        Print Lof(#iNumber)

        Close #iNumber

    End Sub