Skriver en datapost til en relativ fil eller en sekvens af bytes til en binær fil.
Brug erklæringen Print# til at skrive data til en sekventiel datafil. Brug erklæringen Write# til at skrive data til en sekventiel tekstfil med begrænsende tegn.
Syntaks:
Put [#]fileNum, [recordNum|filePos], variable
Parametre:
fileNum: Ethvert heltalsudtryk, som definerer den fil, du vil skrive til.
recordNum, filePos: Ved relative filer (tilfældig tilgangsfiler) tallet på den post, du vil skrive til.
For binære filer (binær adgang) placeringen på den byte i filen hvor du vil begynde at skrive.
variable: Navnet på den variabel, du vil skrive til til filen,.
Note til relative filer: Hvis indholdet af denne variabel ikke svarer til længden af dataposten som er angivet i Len-delsætningen fra Open-udtrykket, vil afstanden mellem slutningen af den netop skrevne datapost og den næste datapost blive udfyldt med eksisterende data fra den fil, som du skriver til.
Note til binære filer: Indholdet af variablene bliver skrevet til den angivne position, og filens pointer bliver indsat direkte efter sidste byte. Der bliver intet mellemrum tilbage mellem dataposterne.
Eksempel:
Sub ExampleRandomAccess
Dim iNumber As Integer
Dim sText As Variant REM Skal være en variant
Dim aFile As String
aFile = "C:\Users\ThisUser\data.txt"
iNumber = Freefile
Open aFile For Random As #iNumber Len=32
Seek #iNumber,1 REM Position ved begyndelse
Put #iNumber, , "Det er den første tekstlinje" ' Fyld linjen med tekst
Put #iNumber, , "Dette er den anden tekstlinje"
Put #iNumber, , "Dette er den tredje tekstlinje "
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, , "Dette er en ny tekst"
Get #iNumber, 1, sText
Get #iNumber, 2, sText
Put #iNumber, 20, "Dette er teksten i post 20"
Print Lof(#iNumber)
Close #iNumber
End Sub
Sub ExampleRandomAccess
Dim iNumber As Integer
Dim sText As Variant ' Må være en variant
Dim aFile As String
aFile = "~/data.txt"
iNumber = Freefile
Open aFile For Random As #iNumber Len=32
Søg #iNumber,1 ' Begyndelsesposition
Put #iNumber, , "Dette er den første tekstlinje" ' Fyld linjen med tekst
Put #iNumber, , "Dette er den anden tekstlinje"
Put #iNumber, , "Dette er den tredje tekstlinje"
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, , "Dette er en ny tekst"
Get #iNumber, 1, sText
Get #iNumber, 2, sText
Put #iNumber, 20, "Dette er teksten i post 20"
Print Lof(#iNumber)
Close #iNumber
End Sub