Instrukcja Open

Otwiera kanał danych.

Składnia:

Diagram instrukcji Open

Fragment diagramu Access

Fragment diagramu Locking

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.

note

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 = "~/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
note

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.


Prosimy o wsparcie!