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 ma zostać otwarty. 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.

Ikona notatki

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