Zapiše zapis v relativno datoteko ali pa zaporedje bajtov v binarno datoteko.
Uporabite ukaz Print# za izpis podatkov v sekvenčno besedilno datoteko. Uporabite ukaz Write# za zapisovanje podatkov v sekvenčno besedilno datoteko z ločilnimi znaki.
Skladnja:
Put [#]štDatoteke, [štZapisa|položajDatoteka], Spremenljivka
Parametri:
štDatoteke: poljuben celoštevilski izraz vrste Integer, ki definira datoteko, v katero želite pisati.
štZapisa, položajDatoteka: za relativne datoteke (to je datoteke z naključnim dostopom) je to številka zapisa, ki ga želite zapisati.
Za binarne datoteke (binarni dostop) je to položaj bajta v datoteki, kjer želite začeti s pisanjem.
Spremenljivka: ime spremenljivke, ki jo želite zapisati v datoteko.
Opomba glede relativnih datotek: Če dolžina te spremenljivke ne odgovarja dolžini zapisa, ki je navedena v izrazu Len stavka Open, se prostor med koncem novega zapisa in začetkom naslednjega zapisa zapolni s podatki, ki se v datoteki, na katero pišete, že nahajajo.
Opomba glede binarnih datotek: Vsebina spremenljivk se piše na navedeno mesto in kazalka datoteke se prestavi neposredno za zadnji zapisani bajt. Med zapisi ni praznih mest.
Primer:
Sub ExampleRandomAccess
Dim iNumber As Integer
Dim sBesedilo As Variant ' mora biti Variant
Dim aFile As String
aFile = "C:\Users\ThisUser\data.txt"
iNumber = Freefile
Open aFile For Random As #iNumber Len=32
Seek #iStevilka,1 ' Postavi se na začetek datoteke
Put #iStevilka, , "To je prva vrstica besedila" ' napolni vrsto z besedilom
Put #iStevilka, , "To je druga vrstica z besedilom"
Put #iStevilka, , "To je tretja vrstica z besedilom"
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 #iStevilka, , "To je novo besedilo"
Get #iNumber, 1, sText
Get #iNumber, 2, sText
Put #iStevilka, 20, "To je besedilo v zapisu 20"
Print Lof(#iNumber)
Close #iNumber
End Sub
Sub ExampleRandomAccess
Dim iNumber As Integer
Dim sBesedilo As Variant ' mora biti Variant
Dim aFile As String
aFile = "~/data.txt"
iNumber = Freefile
Open aFile For Random As #iNumber Len=32
Seek #iStevilka,1 ' Postavi se na začetek datoteke
Put #iStevilka, , "To je prva vrstica besedila" ' napolni vrsto z besedilom
Put #iStevilka, , "To je druga vrstica z besedilom"
Put #iStevilka, , "To je tretja vrstica z besedilom"
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 #iStevilka, , "To je novo besedilo"
Get #iNumber, 1, sText
Get #iNumber, 2, sText
Put #iStevilka, 20, "To je besedilo v zapisu 20"
Print Lof(#iNumber)
Close #iNumber
End Sub