Πρόταση Open

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

Σύνταξη:

Διάγραμμα πρότασης 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, ορίστε το μήκος των εγγραφών.

note

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


Παράδειγμα:

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
note

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


Παρακαλούμε, υποστηρίξτε μας!