Módulo
Conteúdo
Índice 🔎︎

# Instrução Put

Escreve um registo para um ficheiro relativo, ou uma sequência de bytes para um ficheiro binário.

Consulte também: Instrução Get

## Sintaxe:

    Put [#] NumFicheiro As Integer, [Posição], Variável

## Parâmetros:

NumFicheiro: qualquer expressão de números inteiros que define o ficheiro no qual pretende escrever.

Posição: para ficheiros relativos (ficheiros de acesso aleatório), o número do registo que pretende escrever.

Para ficheiros binários (acesso binário), a posição do byte no ficheiro onde pretende começar a escrever.

Variável: nome da variável que pretende escrever no ficheiro.

Nota para ficheiros relativos. Se o conteúdo desta variável não corresponder ao comprimento do registo especificado na cláusula Len da instrução Abrir, o espaço entre o final do registo recente e o próximo registo é preenchido por dados existentes do ficheiro para o qual está a escrever.

Nota para ficheiros binários: o conteúdo das variáveis é escrito na posição especificada e o apontador de ficheiros é inserido diretamente depois do último byte. Não é deixado qualquer espaço entre os registos.

## 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 a escrita

        Put #iNumber,, "Esta é a primeira linha de texto" ' Preencher 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 é novo textot"

        Get #iNumber,1,sText

        Get #iNumber,2,sText

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

        Print Lof(#iNumber)

        Close #iNumber

    End Sub