IBM Lotus Symphony
|
Służy do zapisywania rekordu w pliku o dostępie pośrednim lub sekwencji bajtów w pliku binarnym.
Patrz także: Instrukcja Get.
Put [#] NumerPliku As Integer, [Pozycja], Zmienna
NumerPliku: Dowolne wyrażenie całkowitoliczbowe definiujące plik, w którym ma zostać dokonany zapis.
Pozycja: W przypadku plików o dostępie pośrednim (plików o dostępie bezpośrednim) jest to numer rekordu, który ma zostać zapisany.
W przypadku plików binarnych (plików o dostępie binarnym) jest to pozycja bajtu w pliku, od której ma zostać rozpoczęte zapisywanie.
Zmienna: Nazwa zmiennej, która ma zostać zapisana w pliku.
Uwaga dotycząca plików o dostępie pośrednim: Jeśli treść tej zmiennej ma długość inną niż długość rekordu określona w klauzuli Len instrukcji Open, miejsce między końcem nowo zapisanego rekordu i następnego rekordu jest dopełniane istniejącymi danymi z pliku, w którym wykonywana jest operacja zapisu.
Uwaga dotycząca plików binarnych: Treść zmiennych jest zapisywana w określonej pozycji, a wskaźnik pliku jest umieszczany bezpośrednio po ostatnim bajcie. Między rekordami nie jest zostawiane wolne miejsce.
Sub PrzykladDostepuBezposredniego
Dim iNumer As Integer
Dim sTekst As Variant REM Musi być typu Variant
Dim aPlik As String
aPlik = "c:\data.txt"
iNumer = Freefile
Open aPlik For Random As #iNumer Len=32
Seek #iNumer,1 REM Pozycja do rozpoczęcia zapisywania
Put #iNumer,, "To jest pierwszy wiersz tekstu" REM Wypełnianie wiersza tekstem
Put #iNumer,, "To jest drugi wiersz tekstu"
Put #iNumer,, "To jest trzeci wiersz tekstu"
Seek #iNumer,2
Get #iNumer,,sTekst
Print sTekst
Close #iNumer
iNumer = Freefile
Open aPlik For Random As #iNumer Len=32
Get #iNumer,2,sTekst
Put #iNumer,,"To jest nowy tekst"
Get #iNumer,1,sTekst
Get #iNumer,2,sTekst
Put #iNumer,20,"To jest tekst w rekordzie 20"
Print Lof(#iNumer)
Close #iNumer
end sub