Module
Contents
Index 🔎︎
\<bookmark_value\>Put statement\</bookmark_value\>

# Put Statement

Writes a record to a relative file or a sequence of bytes to a binary file.

See also: Get statement

## Syntax:

    Put [#] FileNumber As Integer, [position], Variable

## Parameters:

\<emph\>FileNumber:\</emph\> Any integer expression that defines the file that you want to write to.

\<emph\>Position: \</emph\>For relative files (random access files), the number of the record that you want to write.

For binary files (binary access), the position of the byte in the file where you want to start writing.

\<emph\>Variable:\</emph\> Name of the variable that you want to write to the file.

Note for relative files: If the contents of this variable does not match the length of the record that is specified in the \<emph\>Len\</emph\> clause of the \<emph\>Open\</emph\> statement, the space between the end of the newly written record and the next record is padded with existing data from the file that you are writing to.

Note for binary files: The contents of the variables are written to the specified position, and the file pointer is inserted directly after the last byte. No space is left between the records.

## Example:

    Sub ExampleRandomAccess
    Dim iNumber As Integer
    Dim sText As Variant REM Must be a variant type
    Dim aFile As String
        aFile = "c:\data.txt"
        iNumber = Freefile
        Open aFile For Random As #iNumber Len=32
        Seek #iNumber,1 REM Position to start writing
        Put #iNumber,, "This is the first line of text" REM Fill line with text
        Put #iNumber,, "This is the second line of text"
        Put #iNumber,, "This is the third line of text"
        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,,"This is new text"
        Get #iNumber,1,sText
        Get #iNumber,2,sText
        Put #iNumber,20,"This is the text in record 20"
        Print Lof(#iNumber)
        Close #iNumber
    End Sub