Περιεχόμενα
Δείκτης 🔎︎

# Πρόταση Open

Ανοίγει ένα κανάλι δεδομένων.

### Σύνταξη:

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

### Παράμετροι:

pathname: Διαδρομή και όνομα του αρχείου που θα ανοιχθεί. Εάν προσπαθείτε να διαβάσετε ένα αρχείο που δεν υπάρχει (Access = Read), εμφανίζεται μήνυμα σφάλματος. Εάν προσπαθήσετε να γράψετε σε ένα αρχείο που δεν υπάρχει (Access = Write), δημιουργείται νέο αρχείο.

mode: Λέξη-κλειδί που καθορίζει την κατάσταση του αρχείου. Έγκυρες τιμές: Append (προσάρτηση σε σειριακό αρχείο), Binary (δυνατότητα πρόσβασης των δεδομένων με bytes χρησιμοποιώντας Get και Put), Input (ανοίγει κανάλι δεδομένων για ανάγνωση), Output (ανοίγει κανάλι δεδομένων για εγγραφή) και Random (επεξεργάζεται σχετικά αρχεία).

io: Λέξη-κλειδί που καθορίζει τον τύπο πρόσβασης. Έγκυρες τιμές: Read (μόνο ανάγνωση), Write (μόνο εγγραφή), Read Write (και τα δύο).

locking: Λέξη-κλειδί που καθορίζει την κατάσταση ασφαλείας ενός αρχείου μετά το άνοιγμα. Έγκυρες τιμές: Shared (το αρχείο μπορεί να ανοιχθεί από άλλες εφαρμογές), Lock Read (το αρχείο προστατεύεται από ανάγνωση), Lock Write (το αρχείο προστατεύεται από εγγραφή), Lock Read Write (άρνηση πρόσβασης στο αρχείο).

filenum: Οποιαδήποτε έκφραση ακεραίου από 0 έως 511 για να δείξει τον αριθμό ενός καναλιού με ελεύθερα δεδομένα. Μπορείτε, έπειτα, να περάσετε εντολές μέσω του καναλιού δεδομένων για να προσπελάσετε το αρχείο. Ο αριθμός του αρχείου πρέπει να καθοριστεί από τη συνάρτηση FreeFile αμέσως πριν την πρόταση Open.

recLen: Για αρχεία πρόσβασης Random, ορίστε το μήκος των εγγραφών.

Μπορείτε μόνο να τροποποιήσετε τα περιεχόμενα ενός αρχείου που ανοίχτηκε με την πρόταση Open. Αν προσπαθήσετε να ανοίξετε ένα αρχείο που είναι ήδη ανοιγμένο, θα εμφανιστεί ένα μήνυμα σφάλματος.

### Παράδειγμα:

      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, "Αυτή είναι μια γραμμή κειμένου"
          Print #iNumber, "Αυτή είναι μια άλλη γραμμή κειμένου"
          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, "Αυτή είναι μια γραμμή κειμένου"
          Print #iNumber, "Αυτή είναι μια άλλη γραμμή κειμένου"
          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

Εάν η δήλωση Open προσπαθήσει να ανοίξει ένα αρχείο στο οποίο ο τρέχων χρήστης δεν έχει δικαιώματα ανάγνωσης/εγγραφής, θα δημιουργηθεί ένα σφάλμα I/O.

Σχετικά θέματα

Πρόταση Close

Συνάρτηση FreeFile

Δήλωση Input#

Πρόταση Print#