Instrução Put#

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

tip

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:

Diagrama da instrução Put

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 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

♥ Doe para nosso projeto! ♥