Instrukcja Put#
Zapisuje rekord do pliku względnego lub sekwencję bajtów do pliku binarnego.
Użyj instrukcji Print#, aby zapisać dane do sekwencyjnego pliku tekstowego. Użyj instrukcji Write#, aby zapisać dane do sekwencyjnego pliku tekstowego z rozdzielającymi znakami.
 
  
Put [#]fileNum, [recordNum|filePos], variable
 fileNum: dowolne wyrażenie całkowite, które definiuje plik, do którego chcesz zapisać.
 recordNum, filePos: w przypadku plików względnych (plików o dostępie swobodnym) numer rekordu, który chcesz zapisać.
W przypadku plików binarnych (otwartych w trybie Binary) pozycja stanowi pozycję bajtu w pliku, od której należy rozpocząć zapis.
 variable: nazwa zmiennej, którą chcesz zapisać do pliku.
Uwaga dotycząca plików względnych: Jeśli zawartość tej zmiennej ma inną długość niż długość rekordu określona w klauzuli Len instrukcji Open, miejsce pomiędzy końcem aktualnie dopisanego rekordu i następnym rekordem pozostaje wypełnione danymi już istniejącym w tym pliku.
Uwaga dotycząca plików binarnych: Zawartość zmiennej jest zapisywana w określonej pozycji, a wskaźnik pliku jest ustawiany bezpośrednio za ostatnim zapisanym bajtem. Pomiędzy rekordami nie jest pozostawiane wolne miejsce.
  
  Sub ExampleRandomAccess
      Dim iNumber As Integer
      Dim sText As Variant ' Musi być typu variant
      Dim aFile As String
      aFile = "C:\Users\ThisUser\data.txt"
      iNumber = Freefile
      Open aFile For Random As #iNumber Len=32
      Seek #iNumber,1 ' Pozycja rozpoczęcia
      Put #iNumber, , "To jest pierwsza linia tekstu" ' Wypełnia linię tekstem
      Put #iNumber, , "To jest druga linia tekstu"
      Put #iNumber, , "To jest trzecia linia tekstu"
      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, , "To jest nowy tekst"
      Get #iNumber, 1, sText
      Get #iNumber, 2, sText
      Put #iNumber, 20, "To jest tekst w rekordzie 20"
      Print Lof(#iNumber)
      Close #iNumber
  End Sub
  
  Sub ExampleRandomAccess
      Dim iNumber As Integer
      Dim sText As Variant ' Musi być Variant
      Dim aFile As String
      aFile = "~/data.txt"
      iNumber = Freefile
      Open aFile For Random As #iNumber Len=32
      Seek #iNumber,1 ' Pozycja na początku
      Put #iNumber, , "To jest pierwsza linia tekstu" ' Wypełnia linię tekstem
      Put #iNumber, , "To jest druga linia tekstu"
      Put #iNumber, , "To jest trzecia linia tekstu"
      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, , "To jest nowy tekst"
      Get #iNumber, 1, sText
      Get #iNumber, 2, sText
      Put #iNumber, 20, "To jest tekst w rekordzie 20"
      Print Lof(#iNumber)
      Close #iNumber
  End Sub