Obsah
Rejstřík 🔎︎

# Příkaz Put#

Zapíše záznam do relativního souboru nebo sekvenci bajtů do binárního souboru.

K zápisu dat do sekvenčního textového souboru použijte příkaz Print#, k zápisu dat do sekvenčního textového souboru s oddělovacími znaky příkaz Write#.

### Syntaxe:

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

### Parametry:

fileNum: Celočíselný výraz určující soubor, do kterého chcete zapisovat.

recordNum, filePos: Pro relativní soubory (přístup Random) určuje číslo záznamu, který chcete zapsat.

Pro binární soubory (přístup Binary) určuje pozici bajtu, kde má zápis začít.

variable: Název proměnné, kterou chcete zapsat do souboru.

Poznámka pro relativní soubory: Pokud obsah této proměnné neodpovídá délce záznamu, která je určena v klauzuli Len příkazu Open, zaplní se mezera mezi koncem nově zapsaného záznamu a dalším záznamem existujícími daty ze souboru, do kterého zapisujete.

Poznámka pro binární soubory: Obsah proměnné se zapíše na určenou pozici a ukazatel souboru se přesune přímo za poslední bajt. Mezi záznamy nezůstává žádné místo.

### Příklad:

      Sub ExampleRandomAccess
          Dim iNumber As Integer
          Dim sText As Variant ' Musí být variant
          Dim aFile As String
          aFile = "C:\Users\ThisUser\data.txt"
          iNumber = Freefile
          Open aFile For Random As #iNumber Len=32
          Seek #iNumber,1 ' Přesun na začátek
          Put #iNumber,, "Toto je první řádek textu" ' Zaplnit řádek textem
          Put #iNumber, , "Toto je druhý řádek textu"
          Put #iNumber, , "Toto je třetí řádek textu"
          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, , "Toto je nový text"
          Get #iNumber, 1, sText
          Get #iNumber, 2, sText
          Put #iNumber, 20, "Toto je text v záznamu 20"
          Print Lof(#iNumber)
          Close #iNumber
      End Sub

      Sub ExampleRandomAccess
          Dim iNumber As Integer
          Dim sText As Variant ' Musí být variant
          Dim aFile As String
          aFile = "~/data.txt"
          iNumber = Freefile
          Open aFile For Random As #iNumber Len=32
          Seek #iNumber,1 ' Přesun na začátek
          Put #iNumber, , "Toto je první řádek textu" ' Zaplnit řádek textem
          Put #iNumber, , "Toto je druhý řádek textu"
          Put #iNumber, , "Toto je třetí řádek textu"
          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, , "Toto je nový text"
          Get #iNumber, 1, sText
          Get #iNumber, 2, sText
          Put #iNumber, 20, "Toto je text v záznamu 20"
          Print Lof(#iNumber)
          Close #iNumber
      End Sub

Související témata

Příkaz Close

Příkaz Get

Příkaz Open