Spis treści
Indeks 🔎︎

# Instrukcja Open

Otwiera kanał danych.

### Składnia:

    Open pathname For mode [Access io] [locking] As [#]filenum [Len=recLen]

### Parametry:

pathname: ścieżka i nazwa pliku do otwarcia. Jeśli spróbujesz odczytać plik, który nie istnieje (Access = Read), pojawi się komunikat o błędzie. W przypadku próby zapisu do pliku, który nie istnieje (Access = Write), tworzony jest nowy plik.

mode: Słowo kluczowe określające tryb pliku. Poprawne wartości: Append (dołącz do pliku sekwencyjnego), Binary (dostęp do danych można uzyskać bajtami za pomocą Get i Put), Input (otwiera dane kanał do odczytu), Output (otwiera kanał danych do zapisu) i Random (edytuje pliki względne).

io: Słowo kluczowe określające typ dostępu. Prawidłowe wartości: Read (tylko do odczytu), Write (tylko do zapisu), Read Write (oba).

locking: Słowo kluczowe określające stan bezpieczeństwa pliku po otwarciu. Dopuszczalne wartości: Shared (plik może być otwierany przez inne aplikacje), Lock Read (plik jest chroniony przed odczytem), Lock Write (plik jest chroniony przed zapisem), Lock Read Write (odmowa dostępu do pliku).

filenum: Dowolne wyrażenie całkowite od 0 do 511 wskazujące numer wolnego kanału danych. Następnie możesz przekazywać polecenia przez kanał danych, aby uzyskać dostęp do pliku. Numer pliku musi być określony przez funkcję FreeFile bezpośrednio przed instrukcją Open.

recLen: Ustawia długość rekordów podczas uzyskiwania dostępu do pliku w trybie 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:\Users\ThisUser\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

      Sub ExampleWorkWithAFile
          Dim iNumber As Integer
          Dim sLine As String
          Dim aFile As String
          Dim sMsg As String
          aFile = "~/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

Jeśli instrukcja Open spróbuje otworzyć plik, do którego bieżący użytkownik nie ma uprawnień do odczytu/zapisu, zostanie zgłoszony błąd we/wy.

Tematy pokrewne

Instrukcja Close

Funkcja FreeFile

Instrukcja Input#

Instrukcja Print#