Conteúdo

# Declaração Put#

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

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

### Sintaxe:

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

### Parâmetros:

fileNum: Qualquer expressão inteira que defina o ficheiro no qual pretende escrever.

recordNum, filePos: No caso de ficheiros relativos (ficheiros de acesso aleatório), o número do registo que pretende gravar.

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 gravar 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 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 inicio
          Put #iNumber, , "Esta é a primeira linha de texto" ' Preencher a linha com texto
          Colocar #iNumber, , "Esta é a segunda linha de texto"
          Colocar #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
          Imprimir #iNumber, , "Este é um novo texto"
          Get #iNumber, 1, sText
          Get #iNumber, 2, sText
          Colocar #iNumber, 20, «Este é o texto do registo 20»
          Print Lof(#iNumber)
          Close #iNumber
      End Sub

      Sub ExampleRandomAccess
          Dim iNumber As Integer
          Dim sText As Variant ' Tem de ser um Variant
          Dim aFile As String
          aFile = "~/data.txt"
          iNumber = Freefile
          Open aFile For Random As #iNumber Len=32
          Procurar #iNumber,1 ' Posição no início
          Put #iNumber, , "Esta é a primeira linha de texto" ' Preencher a linha com texto
          Colocar #iNumber, , "Esta é a segunda linha de texto"
          Colocar #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
          Imprimir #iNumber, , "Este é um novo texto"
          Get #iNumber, 1, sText
          Get #iNumber, 2, sText
          Colocar #iNumber, 20, «Este é o texto do registo 20»
          Print Lof(#iNumber)
          Close #iNumber
      End Sub

Tópicos relacionados

Declaração de encerramento

Instrução Get

Declaração de abertura

Necessitamos da sua ajuda!