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