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

# Πρόταση 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:\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