Moduł
Spis treści
Indeks 🔎︎

# Instrukcja Put

Zapisuje rekord do pliku względnego lub sekwencję bajtów do pliku binarnego.

Zobacz także: Instrukcja Get

## Składnia:

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

## Parametry:

Numer_pliku: Dowolne wyrażenie w postaci liczby całkowitej definiujące plik, do którego należy zapisać dane.

Pozycja: W przypadku plików względnych (otwartych w trybie Random) pozycja jest numerem rekordu, do którego należy zapisać dane.

W przypadku plików binarnych (otwartych w trybie Binary) pozycja stanowi pozycję bajtu w pliku, od której należy rozpocząć zapis.

Zmienna: Nazwa zmiennej, którą należy zapisać do pliku.

Uwaga dotycząca plików względnych: Jeśli zawartość tej zmiennej ma inną długość niż długość rekordu określona w klauzuli Len instrukcji Open, miejsce pomiędzy końcem aktualnie dopisanego rekordu i następnym rekordem pozostaje wypełnione danymi już istniejącym w tym pliku.

Uwaga dotycząca plików binarnych: Zawartość zmiennej jest zapisywana w określonej pozycji, a wskaźnik pliku jest ustawiany bezpośrednio za ostatnim zapisanym bajtem. Pomiędzy rekordami nie jest pozostawiane wolne miejsce.

## Przykład:

    Sub ExampleRandomAccess

    Dim iNumber As Integer

    Dim sText As Variant ' Musi być typu variant

    Dim aFile As String

        aFile = "c:\data.txt"

        iNumber = Freefile

        Open aFile For Random As #iNumber Len=32

        Seek #iNumber,1 ' Pozycja, z której rozpoczynamy pisać

        Put #iNumber,, "To jest pierwsza linia tekstu" ' Wypełnia linię tekstem

        Put #iNumber,, "To jest druga linia tekstu"

        Put #iNumber,, "To jest trzecia linia tekstu"

        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,,"To jest nowy tekst"

        Get #iNumber,1,sText

        Get #iNumber,2,sText

        Put #iNumber,20,"To jest tekst w rekordzie 20"

        Print Lof(#iNumber)

        Close #iNumber

    End Sub