Moduł
Spis treści
Indeks 🔎︎

# Instrukcja Open

Otwiera kanał danych.

## Składnia:

    Open nazwa_pliku As String [For tryb] [Access IOMode] [Protected] As [#]numer_pliku As Integer [Len = długość_zbioru_danych]

## Parametry:

Nazwa_pliku: Nazwa i ścieżka pliku, który chcesz otworzyć. W przypadku próby odczytu nieistniejącego pliku (Access = Read) zostaje wyświetlony komunikat o błędzie. W przypadku próby zapisu do nieistniejącego pliku (Access = Write) zostaje utworzony nowy plik.

Tryb: Słowo kluczowe określające tryb pliku. Prawidłowe wartości: Append (dołącza dane do pliku sekwencyjnego), Binary (dostęp do poszczególnych bajtów danych można uzyskać za pomocą poleceń Get i Put), Input (otwiera kanał danych do odczytu), Output (otwiera kanał danych do zapisu) oraz Random (edytuje pliki względne).

Tryb_wewy: Słowo kluczowe definiujące typ dostępu. Prawidłowe wartości: Read (tylko odczyt), Write (tylko zapis), Read Write (odczyt i zapis).

Ochrona: Słowo kluczowe definiujące stan ochrony pliku po jego otwarciu. Prawidłowe wartości: Shared (plik może zostać otwarty przez inne aplikacji), Lock Read (plik jest zabezpieczony przez odczytem), Lock Write (plik jest zabezpieczony przez zapisem), Lock Read Write (całkowita odmowa dostępu do pliku).

Numer_pliku: Dowolne wyrażenie w postaci liczby całkowitej w zakresie od 0 do 511 oznaczające numer wolnego kanału danych. Kolejne instrukcje dostępu do pliku można przekazywać poprzez ten kanał danych. Numer pliku należy określić za pomocą funkcji FreeFile wywołanej bezpośrednio przez instrukcją Open.

Długość_zbioru_danych: Dla plików względnych zwraca długość określonego rekordu. Ten parametr jest wymagany tylko w przypadku otwarcia pliku w trybie dostępu Random.

Zawartość pliku można modyfikować wyłącznie w przypadku plików otwartych poleceniem Open. W przypadku próby odczytu wcześniej otwartego pliku zostaje wyświetlony komunikat o błędzie.

## Przykład:

    Sub ExampleWorkWithAFile

    Dim iNumber As Integer

    Dim sLine As String

    Dim aFile As String

    Dim sMsg As String

        aFile = "c:\data.txt"

        iNumber = Freefile

        Open aFile For Output As #iNumber

        Print #iNumber, "To jest linia tekstu"

        Print #iNumber, "To jest kolejna linia tekstu"

        Close #iNumber

        iNumber = Freefile

        Open aFile For Input As iNumber

        While Not eof(iNumber)

            Line Input #iNumber, sLine

            If sLine <>"" Then

                sMsg = sMsg & sLine & chr(13)

            End If

        Wend

        Close #iNumber

        MsgBox sMsg

    End Sub