Instrukcja Open

Otwiera kanał danych.

Składnia:


Open FileName As String [For Mode] [Access IOMode] [Protected] As [#]FileNumber As Integer [Len = DatasetLength]i37502

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.

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 = "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

Please support us!