Erklæringen Put#

Skriver en datapost til en relativ fil eller en sekvens af bytes til en binær fil.

tip

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:

 Erklæringsdiagrammmet Put

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 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.

Eksempel:

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

Støt os venligst!