Σύστημα αρχείων με τη μορφή λίστας στο vb6. Ανάγνωση και εγγραφή σε αρχείο κειμένου

Κάθε πρόγραμμα πρέπει να αποθηκεύει δεδομένα στο δίσκο και να τα διαβάζει από το δίσκο. Αυτό είναι απαραίτητο, για παράδειγμα, για την αποθήκευση των ρυθμίσεων του προγράμματος· ο χρήστης είναι απίθανο να αρέσει το πρόγραμμα, το οποίο θα πρέπει να ρυθμιστεί ξανά την επόμενη φορά που θα εκκινηθεί.

Σε αυτό το άρθρο θα μιλήσουμεσχετικά με την εργασία με αρχεία κειμένου χρησιμοποιώντας τη Visual Basic.

Περιγραφέας αρχείου

Για εργασία με αρχεία λειτουργικό σύστημαχρησιμοποιεί κανάλια I/O, π.χ. κάθε άνοιγμα αρχείουέχει τον δικό του αριθμό.

Στη Visual Basic υπάρχει μια συνάρτηση Δωρεάν Αρχείο, το οποίο επιστρέφει τον αριθμό ενός δωρεάν καναλιού που μπορεί να χρησιμοποιηθεί για την εργασία με το αρχείο. Εάν δεν υπάρχουν ελεύθερα κανάλια, παρουσιάζεται σφάλμα.

Δωρεάν Αρχείο[(Αριθμός εύρους) ]

Αριθμός εύρους-προαιρετική παράμετρος που σας επιτρέπει να ορίσετε το εύρος τιμών των ελεύθερων καναλιών εάν Αριθμός εύρους= 0 (προεπιλογή), τότε ο αριθμός καναλιού επιστρέφεται από το εύρος 1 - 255 και αν είναι 1, τότε από το εύρος 256 - 511.

MyFile = Δωρεάν Αρχείο "Η μεταβλητή MyFile έχει εκχωρηθεί ένα δωρεάν κανάλι και μπορεί πλέον να χρησιμοποιηθεί για εργασία με αρχεία

Εργασία με αρχεία κειμένου

Τις περισσότερες φορές συναντάτε αρχεία κειμένου. Τα αρχεία κειμένου αποτελούνται από το σύνολο χαρακτήρων ASCII (American Standard Code for Information Interchange).

Πριν ξεκινήσετε τη σύνταξη/ανάγνωση δεδομένων, πρέπει να ανοίξετε το αρχείο, αυτό γίνεται χρησιμοποιώντας τον τελεστή Ανοιξε (Ονομα αρχείου) Για ως #Αριθμός φακέλου, Οπου:

Εισαγωγή- ανοίξτε το αρχείο για ανάγνωση, εάν το αρχείο δεν υπάρχει, παρουσιάζεται σφάλμα.

Παραγωγή- για εγγραφή, εάν το αρχείο δεν υπάρχει, θα δημιουργηθεί και εάν υπάρχει, θα αντικατασταθεί.

Προσαρτώ- για να προσθέσετε, εάν το αρχείο δεν υπάρχει, θα δημιουργηθεί, και εάν το αρχείο υπάρχει, τότε τα δεδομένα θα προστεθούν στο τέλος του αρχείου.

Η ανάγνωση αρχείων κειμένου μπορεί να γίνει με δύο τρόπους: ανάγνωση χαρακτήρα προς χαρακτήρα, για αυτό χρησιμοποιήστε τη λειτουργία Εισαγωγή(Αριθμός_αναγνωσμένων_χαρακτήρων, #Αριθμός φακέλου) και γραμμή προς γραμμή, η συνάρτηση χρησιμοποιείται για αυτό Είσοδος γραμμής #Αριθμός φακέλου, Πού_να διαβάσετε.

Dim MyFile

Dim S As String "Μεταβλητή για την αποθήκευση δεδομένων ανάγνωσης

MyFile = Δωρεάν Αρχείο

Άνοιγμα ("C:\TEST.txt") για εισαγωγή ως #MyFile

Εισαγωγή γραμμής #MyFile, S "Διαβάστε την πρώτη γραμμή από το αρχείο TEST.TXT στη μεταβλητή S

Dim MyFile "Δηλώστε μια μεταβλητή για ένα δωρεάν αρχείο

Dim i Ως ακέραιος "Μεταβλητή για βρόχο

Dim tS As String "Μεταβλητή για ανάγνωση συμβολοσειρών

Dim S As String "Μεταβλητή για την αποθήκευση τελικών δεδομένων

MyFile = Δωρεάν Αρχείο «Εκχώρηση ενός δωρεάν καναλιού για εργασία με αρχεία

"Ανοίξτε το αρχείο TEST.TXT για ανάγνωση

Για i = 1 έως 5

Εισαγωγή γραμμής #MyFile, tS "Ανάγνωση του αρχείου TEST.TXT γραμμή προς γραμμή

Αν i => 5 Τότε S = tS "Αν η πέμπτη γραμμή, τότε αποθηκεύστε τη στη μεταβλητή S

Επόμενο i

Κλείσιμο #MyFile "Κλείστε το αρχείο

Dim MyFile "Δηλώστε μια μεταβλητή για ένα δωρεάν αρχείο

Dim S ως συμβολοσειρά "Μεταβλητή για την αποθήκευση δεδομένων ανάγνωσης

MyFile = Δωρεάν Αρχείο «Εκχώρηση ενός δωρεάν καναλιού για εργασία με αρχεία

Άνοιγμα ("C:\TEST.txt") για εισαγωγή ως #MyFile "Ανοίξτε το αρχείο TEST.TXT για ανάγνωση

S = Εισαγωγή$(LOG(1), 1) "Διαβάστε ολόκληρο το αρχείο στη μεταβλητή S

Κλείσιμο #MyFile "Κλείστε το αρχείο

Υπάρχουν τελεστές για εγγραφή σε ένα αρχείο Τυπώνω #Αριθμός φακέλου, ΔεδομέναΚαι Γράψτε #Αριθμός φακέλου, Δεδομένα. Η μόνη διαφορά μεταξύ αυτών των χειριστών είναι ότι Γράφωγράφει δεδομένα σε εισαγωγικά και Τυπώνωχωρίς εισαγωγικά.

Παρακάτω ο ακόλουθος κώδικας θα δημιουργήσει στη μονάδα δίσκου C:\ νέο αρχείο TEST.TXT και γράψτε δύο γραμμές σε αυτό, την πρώτη χωρίς εισαγωγικά και τη δεύτερη σε εισαγωγικά:

Dim MyFile "Δηλώστε μια μεταβλητή για ένα δωρεάν αρχείο

MyFile = Δωρεάν Αρχείο «Εκχώρηση ενός δωρεάν καναλιού για εργασία με αρχεία

Άνοιγμα ("C:\TEST.txt") για έξοδο ως #MyFile "Ανοίξτε το αρχείο TEST.TXT για εγγραφή

Εκτύπωση #MyFile, "Αυτή η γραμμή γράφτηκε από τον τελεστή Print, είναι χωρίς εισαγωγικά..."

Γράψτε #MyFile, "Αυτή η γραμμή γράφτηκε από τον τελεστή Write, είναι σε εισαγωγικά..."

Κλείσιμο #MyFile "Κλείστε το αρχείο

Αυτό είναι όλο. Όπως πιθανότατα έχετε ήδη καταλάβει, ο χειριστής χρησιμοποιείται για το κλείσιμο ενός αρχείου Κλείσε #Αριθμός φακέλου, όπου, # Αριθμός φακέλουδεν είναι απαραίτητο να υποδειχθεί.

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

Windows

Στόχος της εργασίας: Εκμάθηση και χρήση τελεστών γλωσσών VB 6 για εργασία με αρχεία διάφοροι τύποι: διαδοχικά αρχεία (κείμενο), αρχεία τυχαίας πρόσβασης, δυαδικά αρχεία. Έρευνα και χρήση του εργαλείου ΚοινόςΔιάλογοςγια άνοιγμα και αποθήκευση αρχείων, επιλογή γραμματοσειράς και χρώματος και χρήση του αντικειμένου Πρόχειρογια την αποθήκευση θραυσμάτων κειμένου, χρησιμοποιώντας το παράδειγμα δημιουργίας ενός απλού επεξεργαστή κειμένου.

Ερωτήσεις ελέγχου:

1. Με ποιους τρόπους μπορείτε να ανοίξετε ένα αρχείο κειμένου; Πώς να κλείσετε ένα κείμενο ή οποιοδήποτε άλλο ανοιχτό αρχείο;

2. Πώς εγγράφονται τα δεδομένα σε ένα αρχείο κειμένου που είναι ανοιχτό για εγγραφή; Ποια είναι η διαφορά μεταξύ των εντολών Write και Print;

3. Πώς διαβάζονται τα δεδομένα από ένα ανοιχτό αρχείο κειμένου; Πώς διαφέρουν οι τελεστές εισόδου και γραμμής εισόδου μεταξύ τους; Ποια συνάρτηση μπορεί να χρησιμοποιηθεί για την ανάγνωση ενός καθορισμένου αριθμού χαρακτήρων από ένα αρχείο; Πώς να διαβάσετε όλους τους χαρακτήρες ενός αρχείου;

4. Τι είναι προσαρμοσμένος τύποςδεδομένα και πώς χρησιμοποιείται αυτή η έννοια κατά την εργασία με αρχεία τυχαίας πρόσβασης ( raf)?

5. Χρησιμοποιώντας ποιους τελεστές από το αρχείο rafΟι εγγραφές διαβάζονται επίσης στο αρχείο rafΓράφονται νέες καταχωρήσεις;

6. Για ποιο σκοπό καθορίζεται και χρησιμοποιείται το ευρετήριο κατά την εργασία με ένα αρχείο; raf?

7. Ποια είναι τα χαρακτηριστικά της χρήσης δυαδικών αρχείων; Πώς ανοίγουν; Πώς γίνεται η ανάγνωση από ένα δυαδικό αρχείο και η εγγραφή σε ένα δυαδικό αρχείο;

8. Πώς να χρησιμοποιήσετε το χειριστήριο ΚοινόςΔιάλογοςγια να φορτώσετε τα περιεχόμενα ενός αρχείου κειμένου σε ένα πεδίο κειμένου; Πώς μπορώ να χρησιμοποιήσω το ίδιο στοιχείο ελέγχου για να αποθηκεύσω το επεξεργασμένο κείμενο σε ένα αρχείο κειμένου;

9. Πώς να χρησιμοποιήσετε το χειριστήριο ΚοινόςΔιάλογοςγια να κατεβάσετε τα περιεχόμενα του αρχείου rtfστο χωράφι ΠλούσιοςΠλαίσιο κειμένου? Πώς να χρησιμοποιήσετε το ίδιο στοιχείο ελέγχου για να αποθηκεύσετε το επεξεργασμένο κείμενο σε ένα αρχείο rtf?

10. Πώς να χρησιμοποιήσετε το χειριστήριο ΚοινόςΔιάλογοςγια να αλλάξετε τις τιμές των παραμέτρων γραμματοσειράς και να αλλάξετε το χρώμα του κειμένου στο παράθυρο Πλαίσιο κειμένου(ή ένα επιλεγμένο κομμάτι κειμένου στο παράθυρο ΠλούσιοςΠλαίσιο κειμένου)?

Παράδειγμα 7.1. Εξετάστε μια εφαρμογή που δείχνει την εγγραφή σε ένα αρχείο κειμένου (και την ανάγνωση από ένα αρχείο κειμένου) "πληροφορίες εργαζομένων" - γραμμές, καθεμία από τις οποίες περιέχει τον αριθμό αναγνώρισης, το πλήρες όνομα, την ημερομηνία γέννησης και τον τόπο γέννησης του υπαλλήλου. Οι σειρές σχηματίζουν έναν πίνακα, ο οποίος φόρμα οθόνηςθα προσομοιώσει 4 στοιχεία ελέγχου Combo Box (Εικ. 7.1), σχηματίζοντας έναν πίνακα αντικειμένων Comb(i), των οποίων η ιδιότητα Style έχει την τιμή 1 – SimpleCombo.

Επιλέξτε τη γραμμή που θέλετε να διαγράψετε", vbExclamation

Comb(j).RemoveItem i

'Εισάγετε νέα καταχώρησηστο τραπέζι:

Private Sub mnuInsert_Click()

i% = Comb(0).ListIndex

Αν εγώ< 0 Then

MsgBox "Highlight the line to inserted before it", vbExclamation

Comb(0).AddItem InputBox("Εισαγωγή αριθμού"), i

Comb(1).AddItem InputBox("Εισαγάγετε το όνομά σας"), i

Comb(2).AddItem InputBox("Εισαγάγετε τα γενέθλιά σας."), i

Comb(3).AddItem InputBox("Εισαγάγετε τον τόπο γέννησης."), i

Αλλαγή καταχώρισης πίνακα:

Private Sub mnuUpdate_Click()

i% = Comb(0).ListIndex

Αν εγώ< 0 Then

MsgBox "Επισήμανση της σειράς που πρόκειται να τροποποιηθεί", vbExclamation

Comb(0).List(i) = InputBox("Εισαγωγή αριθμού", Comb(0).List(i))

Comb(1).List(i) = InputBox("Εισαγάγετε το όνομά σας", Comb(1).List(i))

Comb(2).List(i) = InputBox("Εισαγάγετε τα γενέθλιά σας.", Comb(2).List(i))

Comb(3).List(i) = InputBox("Εισαγάγετε τον τόπο γέννησης.", Comb(3).List(i))

Καθαρίζοντας ολόκληρο το τραπέζι:

Private Sub mnuClear_Click()

Συμπλήρωση πίνακα με πληροφορίες από αρχείο κειμένου:

Private Sub mnuLoad_Click()

Ανοίξτε το "person. txt" για εισαγωγή ως #1

Εισαγωγή #1, numb, fio, bdate, block

Comb(0).AddItem numb

Comb(1).AddItem fio

Comb(2).AddItem bdate

Comb(3).AddItem block

«Εγγραφή πληροφοριών πίνακα σε αρχείο κειμένου:

Private Sub mnuSave_Click()

N% = Comb(0).ListCount

Ανοίξτε το "person. txt" για έξοδο ως #1

Για i = 0 έως N - 1

Numb = Val(Comb(0).List(i))

fio = Comb(1).List(i)

bdate = CDate(Comb(2).List(i))

μπλοκ = Comb(3).Λίστα(i)

Γράψτε #1, numb, fio, bdate, block

Τερματισμός της εφαρμογής:

Private Sub mnuExit_Click()

Παράδειγμα 7.2 . Εξετάστε μια εφαρμογή που δείχνει τη χρήση στοιχείων ελέγχου ΚοινόςΔιάλογοςγια να ανοίξετε και να αποθηκεύσετε ένα αρχείο, να επιλέξετε γραμματοσειρά και χρώμα και να επεξεργαστείτε κείμενο.

Μορφή αρχείου κείμενοθα φορτωθεί στο πεδίο κειμένου (αριστερό πεδίο στην Εικ. 7.2) και στη μορφή αρχείου RTF- στο χωράφι ΠλούσιοςΠλαίσιο κειμένου(δεξί περιθώριο στην Εικ. 7.2).

αντικείμενο

Τάξη

αντικείμενο

Ιδιοκτησία

αντικείμενο

Αξία περιουσίας

«Γενικά πάνελ

διάλογος"

Άνοιγμα/Αποθήκευση ως καρτέλα

Καρτέλα γραμματοσειρά

Έγχρωμη καρτέλα

Ο πίνακας δεν εμφανίζει τις ιδιότητες των εντολών μενού Γραμματοσειρά, ΧρώμαΚαι Επεξεργασία. Παρακάτω είναι ο κωδικός διαδικασίας και μόνο για εντολές μενού Αρχείο (Ανοιξε, ΑποθηκεύσετεΚαι ΑποθηκεύσετεΟπως και). Η σύνθεση κώδικα για άλλες εντολές μενού είναι το θέμα της 2ης εργασίας αυτής της εργασίας.

Private Sub mnuOpen_Click()

CommonDialog1.ShowOpen

F$ = CommonDialog1.FileName

Αν Right(F, 3) = "rtf" Τότε

RichTextBox1.LoadFile F

ElseIf Right(F, 3) = "txt" Τότε

Ανοίξτε το F για εισαγωγή ως #1

S$ = Είσοδος (N, 1)

Private Sub mnuSave_Click()

CommonDialog1.ShowSave

F$ = CommonDialog1.FileName

Private Sub mnuSaveAs_Click()

CommonDialog1.ShowSave

F$ = CommonDialog1.FileName

RichTextBox1.SaveFile F, rtfRTF

Κατά τη διάρκεια αυτής της εργασίας, ο μαθητής πρέπει να ολοκληρώσει 2 εργασίες.

Ασκηση 1. Κατά τη διαδικασία ολοκλήρωσης της εργασίας, οι μαθητές κατακτούν τις δυνατότητες που είναι διαθέσιμες στο VB 6 για εργασία με αρχεία τυχαίας πρόσβασης ( RAFτυχαίοςπρόσβασηαρχείο).

Για έναν δεδομένο πίνακα βάσης δεδομένων, δηλώνεται ένας τύπος δεδομένων χρήστη, δηλώνεται μια μεταβλητή αυτού του τύπου (tutorial, σελ. 108–112), οι διαδικασίες που χρησιμοποιούν μια μεταβλητή τύπου χρήστη μεταγλωττίζονται και διορθώνονται.

Συγκεκριμένα, υλοποιούνται διαδικασίες για εντολές μενού Γράψτε στο αρχείοRAFΚαι Ανάγνωση από το αρχείοRAF. Όπως στο παράδειγμα 7.1, ένας πίνακας αντικειμένων χρησιμοποιείται για την επεξεργασία δεδομένων ComboΚουτίκαι μενού Επεξεργασίαμε πέντε εντολές υπομενού: Προσθέστε μια σημείωση, Διαγραφή συμμετοχής, Εισαγωγή καταχώρισης, Επεξεργασία καταχώρισης, Καθαρός πίνακας.

Επιλογή 1.

Δηλώστε έναν προσαρμοσμένο τύπο δεδομένων για τον πίνακα "Car" (Πίνακας 7.1) της βάσης δεδομένων "Car Service".

αυτοκίνητο

αυτοκίνητο

δυσλειτουργίες

Η κατώτατη γραμμή του Πίνακα 7.1 δείχνει τους τύπους πεδίων.

Επιλογή 2.

Δηλώστε έναν προσαρμοσμένο τύπο δεδομένων για τον πίνακα «Σφάλματα» (Πίνακας 7.2) της βάσης δεδομένων «Σέρβις αυτοκινήτου».

δυσλειτουργίες

Ονομα

δυσλειτουργίες

Τιμή

Η κατώτατη γραμμή του Πίνακα 7.2 δείχνει τους τύπους πεδίων.

Χρησιμοποιώντας το Παράδειγμα Εφαρμογής 7.1 ως πρότυπο, οργανώστε την εισαγωγή και την επεξεργασία των δεδομένων για τον πίνακα που εμφανίζεται, γράφοντας αυτά τα δεδομένα σε ένα αρχείο τυχαίας πρόσβασης και διαβάζοντας δεδομένα από ένα αρχείο τυχαίας πρόσβασης. Όπως στο παράδειγμα 7.1, αυτές οι ενέργειες υλοποιούνται ως η λειτουργία των εντολών μενού που φαίνεται στο Σχ. 7.1.

Εργασία 2. Κατά τη διάρκεια της εργασίας, οι μαθητές προσθέτουν νέες δυνατότητες στο παράδειγμα εφαρμογής 2 που επιτρέπουν την προβολή της εφαρμογής ως απλό πρόγραμμα επεξεργασίας κειμένου.

Επιλογή 1 ΚοινόςΔιάλογοςυλοποίηση εντολών μενού ΓραμματοσειράΚαι Χρώμα(με υπομενού Χρώμα χαρακτήρωνΚαι Χρώμα του φόντου). Χρησιμοποιώντας αυτές τις εντολές, θα πρέπει να μπορείτε να επιλέξετε μια γραμματοσειρά (το όνομα, το στυλ και το μέγεθός της) για το επιλεγμένο τμήμα κειμένου στο παράθυρο ΠλούσιοςΠλαίσιο κειμένου, καθώς και την επιλογή του χρώματος των χαρακτήρων του επιλεγμένου τμήματος και την επιλογή του χρώματος φόντου ολόκληρου του παραθύρου.

Σημείωση:Κατά τη ρύθμιση ενός αντικειμένου ΚοινόςΔιάλογοςΓια να επιλέξετε μια γραμματοσειρά χρησιμοποιώντας την ιδιότητα (Προσαρμοσμένη), φροντίστε να ορίσετε την τιμή της ιδιότητας Flags σε 1, 2 ή 3 (βλ. εγχειρίδιο, σελίδα 183).

Επιλογή 2. Χρησιμοποιώντας ένα χειριστήριο ΚοινόςΔιάλογοςυλοποίηση εντολών μενού Επεξεργασία(υπομενού αντίγραφο, ΤομήΚαι Επικόλληση), σκοπός της οποίας είναι αντιγραφήή διαγραφήστο πρόχειρο του επιλεγμένου τμήματος κειμένου και επίσης εισάγετεστην επιλεγμένη περιοχή κειμένου των περιεχομένων του προχείρου.

Σημείωση:Στο πρόχειρο (αντικείμενο Πρόχειρο) μπορείτε να χρησιμοποιήσετε τις μεθόδους SetText και GetText:

Πρόχειρο. SetText RichTextBox1.SelText

RichTextBox1.SelText = Πρόχειρο. GetText

8. ΑΠΟΘΗΚΕΥΣΗ ΚΑΙ ΑΝΑΓΝΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ

Για να διασφαλίσετε ότι όλα τα δεδομένα που δημιουργούνται στη μνήμη δεν θα χαθούν μετά την ολοκλήρωση του προγράμματος, πρέπει να μπορείτε να αποθηκεύσετε πληροφορίες στον σκληρό σας δίσκο. Διαφορετικά, όλες οι πληροφορίες θα εξαφανιστούν χωρίς ίχνος. Τα δεδομένα μπορούν να αποθηκευτούν και να διαβαστούν με διάφορους τρόπους. Για να εργαστείτε με πληροφορίες διαφόρων μεγεθών και μορφών, μπορείτε να χρησιμοποιήσετε δυαδικά αρχεία και αρχεία κειμένου. Για να αποθηκεύσετε μικρές ποσότητες πληροφοριών, μπορείτε να χρησιμοποιήσετε το μητρώο των Windows. Και για τις πιο σύνθετες εργασίες, είναι συνετό να χρησιμοποιείτε βάσεις δεδομένων.

8.1. Άνοιγμα αρχείων χρησιμοποιώντας τον τελεστή "Ανοιξε "

Ένα αρχείο είναι μια περιοχή με όνομα οποιασδήποτε εξωτερικής συσκευής αποθήκευσης. Τα δεδομένα "ζουν" στη μνήμη του υπολογιστή και τα αρχεία στον σκληρό δίσκο. Το πρόγραμμα δεν λειτουργεί απευθείας με αρχεία, αλλά χρησιμοποιεί το λειτουργικό σύστημα ως ενδιάμεσο.

Υπάρχουν δύο τύποι ονομάτων αρχείων: πλήρης - εκτός από το όνομα αρχείου, υποδεικνύεται επίσης η θέση του αρχείου σε εξωτερικά μέσα (για παράδειγμα, "C:\Program Files\Microsoft Visual Studio\VB98\VB 6.EXE" ) και σύντομο - μόνο το όνομα αρχείου (VB 6.EXE ). Εάν η θέση του αρχείου δεν έχει καθοριστεί, θα γίνει αναζήτηση στον τρέχοντα φάκελο, από προεπιλογή στον φάκελο όπου βρίσκεται η εφαρμογή σας. Το όνομα του άμεσου αρχείου αποτελείται από δύο μέρη: το πραγματικό μοναδικό όνομα αρχείου και την επέκτασή του. Το ίδιο το όνομα προσδιορίζει το αρχείο και η επέκταση συνήθως υποδεικνύει τη μορφή αρχείου ή από ποιο πρόγραμμα δημιουργήθηκε.

Πριν ξεκινήσετε να εργάζεστε με το αρχείο, πρέπει να ρωτήσετε το λειτουργικό σύστημα δείκτης (περιγραφέας) αρχείο. Για να το αποκτήσετε, χρησιμοποιήστε τη λειτουργία "FreeFile". Στη συνέχεια, χρησιμοποιώντας τον τελεστή "Άνοιγμα", αυτός ο δείκτης συσχετίζεται με το απαιτούμενο αρχείο. Μόνο μετά από αυτό το πρόγραμμα θα μπορεί να λειτουργήσει με αυτό. Η σύνταξη για το άνοιγμα ενός αρχείου είναι η εξής:

«πάρτε έναν δωρεάν δείκτη αρχείου και αντιστοιχίστε τον σε μια μεταβλητή

FileHandle% = Δωρεάν Αρχείο

«άνοιξε το αρχείο

Άνοιγμα FilePath_

Ως [#]FileHandle%

...(εργάζεται με αρχείο)

Κλείστε το [#]FileHandle

· FileHandle % – μια μεταβλητή που αποθηκεύει τον δείκτη του αρχείου.

· FreeFile – όνομα της συνάρτησης που επιστρέφει τον δείκτη του αρχείου.

· Άνοιγμα – όνομα χειριστή.

· FilePath – πλήρες όνομα αρχείου.

· Για – μια λέξη-κλειδί ακολουθούμενη από μια περιγραφή της λειτουργίας πρόσβασης στο αρχείο.

· Λειτουργία – λειτουργία πρόσβασης αρχείου (βλ. Πίνακα 15).

Πίνακας 15

Λειτουργίες πρόσβασης αρχείων

Λειτουργίες πρόσβασης

Περιγραφή

Προσαρτώ

Προσθήκη δεδομένων στο τέλος ενός υπάρχοντος αρχείου κειμένου. Εάν το αρχείο δεν υπάρχει, θα δημιουργηθεί

Δυάδικος

Άνοιγμα αρχείου σε δυαδική λειτουργία, π.χ. ως σύνολο byte. Εάν το αρχείο δεν υπάρχει αλλά θα δημιουργηθεί

Εισαγωγή

Άνοιγμα αρχείου για ανάγνωση σε μορφή κειμένου

Παραγωγή

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

Τυχαίος

Άνοιγμα αρχείου σε λειτουργία τυχαίας πρόσβασης. Αυτή η λειτουργία χρησιμοποιείται για εργασία με απλές εγγραφές. Εάν το αρχείο δεν υπάρχει αλλά θα δημιουργηθεί

· Πρόσβαση – μια προαιρετική λέξη-κλειδί ακολουθούμενη από περιγραφή του τύπου πρόσβασης.

· AccessType – περιγραφή του τύπου πρόσβασης:

· Ανάγνωση – ανάγνωση;

· Εγγραφή – εγγραφή.

· Read Write – ανάγνωση και γραφή.

Σημείωση

Με τις λειτουργίες πρόσβασης Append και Output, είναι διαθέσιμος μόνο ο τύπος πρόσβασης εγγραφής, με Input μόνο Read και με Binary και Random είναι διαθέσιμοι και οι τρεις τύποι πρόσβασης.

· Το LockType είναι μια προαιρετική παράμετρος που καθορίζει εάν άλλα προγράμματα μπορούν να χρησιμοποιήσουν αυτό το αρχείο ενώ το πρόγραμμά σας λειτουργεί με αυτό. Συνήθως σχετίζεται με την εργασία στο δίκτυο (βλ. Πίνακα 16).

Πίνακας 16

Πιθανές τιμές για την παράμετρο LockType

Εννοια

Περιγραφή

Κοινή χρήση

Όλοι οι χρήστες με τα απαραίτητα δικαιώματα θα έχουν πλήρη πρόσβαση στο αρχείο

Κλείδωμα Ανάγνωση

Η ανάγνωση του αρχείου είναι αποκλεισμένη, αλλά επιτρέπεται η εγγραφή

Κλείδωμα Γράψτε

Η εγγραφή στο αρχείο είναι αποκλεισμένη, αλλά επιτρέπεται η ανάγνωση

Κλείδωμα Ανάγνωση Εγγραφή

Τόσο η ανάγνωση όσο και η γραφή σε αυτό απαγορεύονται

· Όπως είναι μια λέξη-κλειδί που ακολουθείται από δείκτη αρχείου.

· Το # είναι ένα σύμβολο που υποδεικνύει ότι η τιμή που ακολουθεί είναι δείκτης αρχείου.

· Το Len είναι μια προαιρετική λέξη-κλειδί που πρέπει να ακολουθείται από μια παράμετρο που καθορίζει το μήκος της καταχώρισης.

· CharInBuffer % - μήκος εγγραφής για ένα αρχείο που ανοίγει σε λειτουργία τυχαίας πρόσβασης (Τυχαία).

· Κλείσιμο είναι μια δήλωση που κλείνει το αρχείο που σχετίζεται με την καθορισμένη λαβή.

Είναι σημαντικό να κλείσετε ένα αρχείο όταν ολοκληρώσετε την εργασία μαζί του. Η δήλωση "Κλείσιμο" ελευθερώνει τον δείκτη του αρχείου και τη σχετική περιοχή μνήμης.

Όταν εργάζεστε με ένα αρχείο, δηλαδή όταν διαβάζετε από αυτό, ο προσδιορισμός του τέλους του αρχείου είναι πολύ σημαντικός. Μπορεί να οριστεί χρησιμοποιώντας τη συνάρτηση EOF (End Of File):

EOF(FileHandle)

· ΕΟΦ – όνομα λειτουργίας.

· Το FileHandle είναι ένας δείκτης στο αρχείο του οποίου το τέλος προσδιορίζεται.

Η συνάρτηση επιστρέφει True εάν φτάσει στο τέλος του αρχείου, διαφορετικά επιστρέφει False.

8.2. Ανάγνωση και εγγραφή σε αρχείο κειμένου

Το αρχείο κειμένου ανοίγει στη λειτουργία πρόσβασης "Είσοδος", "Έξοδος" ή "Προσθήκη" (βλ. Πίνακα 15). Η ιδιαιτερότητα αυτής της λειτουργίας είναι ότι λειτουργεί μόνο με συγκεκριμένους εκτυπώσιμους χαρακτήρες. Είναι άχρηστο να δουλεύεις με σύμβολα υπηρεσιών.

Για την εγγραφή πληροφοριών, χρησιμοποιήστε δύο τελεστές "Print" και "Write", η σύνταξη των οποίων είναι η εξής:

Εκτύπωση #FileHandle%, VarBuffer [;]

Γράψτε #FileHandle%, VarBuffer [;]

· Εκτύπωση / Εγγραφή – λέξεις-κλειδιά χειριστή.

· #FileHandle % - δείκτης στο αρχείο στο οποίο θα τοποθετηθούν οι πληροφορίες.

· VarBuffer – η τιμή που θα γραφτεί στο αρχείο.

· ; – μια προαιρετική παράμετρος που χρησιμοποιείται κατά την εγγραφή σε ένα αρχείο κειμένου, σημαίνει ότι η επόμενη τιμή θα γραφτεί στην ίδια γραμμή και εάν δεν υπάρχει, στην επόμενη.

Για να διαβάσετε πληροφορίες από ένα αρχείο, χρησιμοποιήστε τους τελεστές "Είσοδος" και "Είσοδος Γραμμής". Η σύνταξη είναι παρόμοια μεταξύ τους:

Είσοδος γραμμής #FileHandle%, VarBuffer

Εισαγωγή #FileHandle%, VarBuffer

· Line Input / Input – λέξεις-κλειδιά χειριστή.

· #FileHandle % - δείκτης προς το αρχείο από το οποίο θα διαβαστούν οι πληροφορίες.

· VarBuffer – μια μεταβλητή στην οποία θα διαβάζονται οι πληροφορίες.

Η διαφορά μεταξύ των τελεστών "Είσοδος γραμμής" και "Είσοδος" είναι ότι ο πρώτος προορίζεται μόνο για αρχεία κειμένου και ο δεύτερος - για οποιοδήποτε. Στην περίπτωση αρχείων κειμένου, η "Εισαγωγή" διαβάζει τα δεδομένα σε μία γραμμή μέχρι τον πρώτο οριοθέτη (για δεδομένα κειμένου το διαχωριστικό είναι ","" (κόμμα) και για τα αριθμητικά δεδομένα - "" (κενό) και ","") , και η "Είσοδος γραμμής" διαβάζει ολόκληρη τη γραμμή ταυτόχρονα, αγνοώντας τυχόν οριοθέτες.

Σημείωση

Η Visual Basic δεν διαθέτει μέσα ελέγχου της μορφής των αρχείων που δημιουργήθηκαν προηγουμένως. Επομένως, το σύμβολο "2" μπορεί να διαβαστεί ως ο αντίστοιχος αριθμός και αντίστροφα.

8.3. Εργασία με δυαδικά αρχεία

Ανοίγουν τα αρχεία δυαδική μορφήχειριστή "Άνοιγμα" σε λειτουργία "Δυαδική". Ένα χαρακτηριστικό γνώρισμα αυτής της λειτουργίας είναι ότι η εργασία με το αρχείο επικεντρώνεται αποκλειστικά σε συγκεκριμένα byte. Εφόσον η Visual Basic μπορεί να απευθυνθεί απευθείας στην επιθυμητή θέση σε ένα αρχείο, αυτή η λειτουργία ονομάζεται επίσης − λειτουργία άμεσης πρόσβασης. Ένα άλλο χαρακτηριστικό αυτής της λειτουργίας είναι η δυνατότητα ταυτόχρονης εγγραφής και ανάγνωσης πληροφοριών σε διαφορετικά μέρη του αρχείου χωρίς να το ανοίξετε ξανά. Η εγγραφή σε ένα αρχείο που ανοίγει σε δυαδική λειτουργία γίνεται χρησιμοποιώντας την ακόλουθη σύνταξη:

Βάλτε #FileHandle%, , NameVar

· Put – όνομα του χειριστή καταγραφής πληροφοριών.

· RecNumber – ο αριθμός byte του αρχείου στο οποίο θα εγγραφούν οι πληροφορίες (προαιρετική παράμετρος).

· Το NameVar είναι μια μεταβλητή της οποίας τα περιεχόμενα θα εγγραφούν στο αρχείο.

Η ανάγνωση πληροφοριών από ένα αρχείο σε δυαδική λειτουργία γίνεται χρησιμοποιώντας τον ακόλουθο τελεστή:

Λάβετε #FileHandle%, , NameVar

· Get – το όνομα του χειριστή καταγραφής πληροφοριών.

· FileHandle % - λαβή αρχείου.

· RecNumber – αριθμός byte του αρχείου από το οποίο θα διαβαστούν οι πληροφορίες (προαιρετική παράμετρος).

· NameVar – το όνομα της μεταβλητής στην οποία θα τοποθετηθούν οι αναγνωσμένες πληροφορίες.

Δεδομένου ότι η δυαδική λειτουργία εστιάζει σε byte πληροφοριών, κατά την ανάγνωση από ένα αρχείο, η μεταβλητή buffer πρέπει να έχει έναν αυστηρά καθορισμένο τύπο: είτε "Byte", τότε θα διαβαστεί η αριθμητική τιμή του byte ή ένας χαρακτήρας σταθερού μήκους ενός χαρακτήρα, τότε το byte θα διαβαστεί ως χαρακτήρας, ANSI, ο κωδικός του οποίου αντιστοιχεί στο μέγεθος του byte. Αυτός ο χαρακτήρας μπορεί ακόμη και να είναι χαρακτήρας ελέγχου, ο οποίος δεν μπορεί να επιτευχθεί στην περίπτωση αρχείων κειμένου.

Σημείωση

Εάν δεν υπάρχει η παράμετρος "RecNumber", η εγγραφή ή η ανάγνωση πληροφοριών θα πραγματοποιηθεί στο επόμενο byte του αρχείου μετά από αυτό με το οποίο είχε εργαστεί προηγουμένως.

8.4. Χειρισμός γραφικών

Μπορείτε επίσης να αποθηκεύσετε και να εξαγάγετε εικόνες γραφικών από αρχεία. Για να εξαγάγετε μια εικόνα από ένα αρχείο bitmap ή εικονίδιο και να την αντιστοιχίσετε στην ιδιότητα "Picture" των στοιχείων ελέγχου "PictureBox" και "Image", χρησιμοποιήστε τη συνάρτηση "LoadPicture()" με την ακόλουθη σύνταξη:

ImageCtrl.Picture = LoadPicture(FilePath)

· ImageCtrl – το όνομα ενός στοιχείου ελέγχου παραθύρου εικόνας, ελέγχου εικόνας ή φόρμας.

· LoadPicture – όνομα συνάρτησης.

· FilePath – πλήρες όνομα αρχείου.

SavePicture ImageCtrl .Picture, FilePath

· SavePicture – όνομα χειριστή.

· ImageCtrl – το όνομα ενός στοιχείου ελέγχου παραθύρου εικόνας, ελέγχου εικόνας ή φόρμας.

· Εικόνα – όνομα της ιδιότητας του αντικειμένου που είναι υπεύθυνη για την εικόνα.

· FilePath – το πλήρες όνομα του αρχείου που υποδεικνύει τη θέση του στο δίσκο.

8.5. Εργασία με δεδομένα στο μητρώο

Το μητρώο των Windows μπορεί να χρησιμοποιηθεί για την αποθήκευση μικρών τμημάτων πληροφοριών σε μορφή χαρακτήρων. Η Visual Basic έχει τέσσερις διαδικασίες που μπορείτε να χρησιμοποιήσετε για να αποκτήσετε πρόσβαση. Είναι πολύ εύχρηστα, αλλά έχουν ένα βασικό μειονέκτημα: μπορείτε να έχετε πρόσβαση σε δεδομένα μόνο από ένα συγκεκριμένο κλειδί μητρώου: "MyComputer\HKEY_CURRENT_USER\Software\VB and VBA Program Settings". Για να αποκτήσετε πρόσβαση σε άλλες ενότητες του μητρώου, πρέπει να χρησιμοποιήσετε ειδικές λειτουργίες "Win 32 API".

Για να λάβετε την τιμή μιας ρύθμισης από την ενότητα της Visual Basic του μητρώου των Windows, πρέπει να χρησιμοποιήσετε την ακόλουθη συνάρτηση:

MyString = GetSetting (VBKeyName, Section, Key [,Default])

· MyString – μια συμβολοσειρά για την αποθήκευση της τιμής που επιστρέφεται από τη συνάρτηση.

· GetSetting – όνομα συνάρτησης.

· Το VBKeyName είναι μια τιμή συμβολοσειράς που είναι το όνομα του εσωτερικού δευτερεύοντος κλειδιού VB/VBA.

· Το κλειδί είναι μια τιμή συμβολοσειράς που αντιπροσωπεύει το όνομα της παραμέτρου στην ενότητα.

· Προεπιλογή – ένα προαιρετικό όρισμα, η τιμή του οποίου θα επιστραφεί σε περίπτωση σφάλματος (λείπει παράμετρος).

Για να αποθηκεύσετε μια τιμή στο μητρώο των Windows, χρησιμοποιήστε την ακόλουθη πρόταση:

SaveSetting VBKeyName, Section, Key, MyString

· SaveSetting – όνομα χειριστή.

· Το MyString είναι μια μεταβλητή συμβολοσειράς στην οποία θα τοποθετηθεί η τιμή που βρέθηκε.

Για να αποκτήσετε έναν πίνακα από το μητρώο που περιέχει όλες τις τιμές παραμέτρων από ένα συγκεκριμένο δευτερεύον κλειδί, χρησιμοποιήστε την ακόλουθη συνάρτηση:

MyVariant = SetAllSettings(VBKeyName, Section)

· Το MyVariant είναι ένας πίνακας τιμών τύπου "Variant" που επιστρέφεται από τη συνάρτηση.

· SetAllSettings – όνομα συνάρτησης.

· Section – Μια τιμή συμβολοσειράς που αντιπροσωπεύει μια ενότητα ή υποενότητα μιας συγκεκριμένης εφαρμογής.

Για να καταργήσετε μια ολόκληρη ενότητα παραμέτρων, χρησιμοποιήστε μια δήλωση με την ακόλουθη σύνταξη:

DeleteSetting VBKeyName, Section, Key

· DeleteSetting – όνομα χειριστή.

Ερωτήσεις τεστ για αυτοέλεγχο

  1. Πώς μπορείτε να αποθηκεύσετε κάποιες πληροφορίες μακροπρόθεσμα;
  2. Τι είναι ένα αρχείο;
  3. Ποια ονόματα αρχείων γνωρίζετε;
  4. Δώστε τη σύνταξη του τελεστή "Open". Εξηγήστε το σκοπό των παραμέτρων του.
  5. Πώς μπορούν πολλές εφαρμογές να μοιράζονται πρόσβαση σε ένα αρχείο ταυτόχρονα;
  6. Πώς να προσδιορίσετε ότι οι πληροφορίες σε ένα αρχείο έχουν εξαντληθεί;
  7. Γιατί συνιστάται να το κλείσετε μετά την εργασία με ένα αρχείο;
  8. Ποια είναι η διαφορά μεταξύ των λειτουργιών κειμένου και δυαδικών αρχείων;
  9. Πώς διαβάζονται και γράφονται τα δεδομένα σε λειτουργία αρχείου κειμένου;
  10. Πώς διαβάζονται και γράφονται τα δεδομένα σε λειτουργία δυαδικού αρχείου;
  11. Ποια είναι η διαφορά μεταξύ των τελεστών "Εκτύπωση" και "Εγγραφή" κατά την εργασία με αρχεία;
  12. Ποια είναι η διαφορά μεταξύ των τελεστών "Είσοδος" και "Είσοδος Γραμμής" κατά την εργασία με αρχεία;
  13. Πώς μπορείτε να εργαστείτε με δεδομένα γραφικών;
  14. Ποιες είναι οι βασικές αρχές της εργασίας με το μητρώο των Windows;



Μπλουζα