Instructie Put

Module
Inhoud
Index 🔎︎

# Put-instructie

Schrijft een record naar een relationeel bestand of een reeks van bytes naar een binair bestand.

Zie ook: Get-instructie

## Syntaxis:

    Put [#] FileNumber As Integer, [position], Variable

## Parameters:

Bestandsnummer: Elke integer die het bestand definieert waarnaar moet worden geschreven.

Positie: Voor relationele bestanden (Random-toegang bestanden) het nummer van de record die moet worden geschreven.

Voor binaire bestanden (Binary-toegang) de bytepositie in het bestand waarop moet worden begonnen met schrijven.

Variabele: Naam van de variabele die naar het bestand moet worden geschreven.

Opmerking voor relationele bestanden: Als de inhoud van deze variabele niet overeenstemt met de lengte van een record zoals die gespecificeerd is in de Len-variable van de Open-insstructie, wordt de ruimte vanaf het einde van de nieuw geschreven gegevens tot de volgende record gevuld met de bestaande gegevens in het bestand.

Attentie voor binaire bestanden: De inhoud van de variabelen wordt geschreven naar de gespecificeerde positie en de bestandaanwijzer wordt direct na de laatste byte ingesteld, zonder enige ruimte tussen de records.

## Voorbeeld:

    Sub ExampleRandomAccess

    Dim iNumber As Integer

    Dim sTekst As Variant ' Moet een type variant zijn

    Dim aFile As String

        aFile = "c:\data.txt"

        iNumber = Freefile

        Open aFile For Random As #iNumber Len=32

        Seek #iNumber,1 ' Positie waar begonnen wordt met schrijven

        Put #iGetal,, "Dit is de eerste regel tekst" ' Vult regel met tekst

        Put #iGetal,, "Dit is de tweede regel tekst"

        Put #iGetal,, "Dit is de derde regel tekst"

        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 #iGetal,,"Dit is een nieuwe tekst"

        Get #iNumber,1,sText

        Get #iNumber,2,sText

        Put #iGetal,20,"Dit is de tekst in record 20"

        Print Lof(#iNumber)

        Close #iNumber

    End Sub