Erklæringen Put#
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.
Put [#]fileNum, [recordNum|filePos], variable
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 klausulen Len i sætningen Open, 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.
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