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