Sumário
Índice 🔎︎

# Instrução Put#

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

Utilize a instrução Print# para imprimir dados num arquivo sequencial de texto. Utilize a instrução Write# para gravar dados em arquivos de texto sequencial com caracteres delimitadores.

### Sintaxe:

    Put [#]fileNum, [recordNum|filePos], variable

### Parâmetros:

fileNum: qualquer expressão de número inteiro que define o arquivo para gravar.

recordNum, filePos: 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 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 uma variante
          Dim aFile As String
          aFile = "C:\Users\ThisUser\data.txt"
          iNumber = Freefile
          Open aFile For Random As #iNumber Len=32
          Seek #iNumber,1 ' Posição no início
          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, ,"Este é 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

      Sub ExampleRandomAccess
          Dim iNumber As Integer
          Dim sText As Variant ' Deve ser um variant
          Dim aFile As String
          aFile = "~/data.txt"
          iNumber = Freefile
          Open aFile For Random As #iNumber Len=32
          Seek #iNumber,1 ' Posição no início
          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, ,"Este é 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

Tópicos relacionados

Instrução Close

Instrução Get

Instrução Open