Το σύστημα αρχείων ως λίστα στο vb6. Προσθήκη δεδομένων σε αρχείο

Windows

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

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

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

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

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

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 "Επιλέξτε μια γραμμή για εισαγωγή πριν από αυτήν", 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("Enter name", 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

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

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-τυχαίοςπρόσβασηαρχείο).

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

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

Επιλογή 1.

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

αυτοκίνητο

αυτοκίνητο

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

Η κάτω σειρά του Πίνακα 7.1 δείχνει τους τύπους πεδίων.

Επιλογή 2.

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

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

Ονομα

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

Τιμή

Η κάτω σειρά του πίνακα 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DimMyFile

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

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

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

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

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

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 "Κλείστε το αρχείο

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

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

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

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

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

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

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

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

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

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

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 - το πλήρες όνομα του αρχείου.

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

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

Πίνακας 15

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

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

Περιγραφή

Προσαρτώ

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

Δυάδικος

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

Εισαγωγή

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

Παραγωγή

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

Τυχαίος

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

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

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

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

· Εγγραφή - καταγραφή;

· Διαβάστε Γράψτε - ανάγνωση και γραφή.

Σημείωση

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

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

Πίνακας 16

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

Εννοια

Περιγραφή

κοινόχρηστο

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

κλειδαριά ανάγνωση

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

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

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

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

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

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

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

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

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

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

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

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

EOF(FileHandle)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

· Γραμμή Είσοδος / Είσοδος - λέξεις-κλειδιά χειριστή.

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

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

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

Σημείωση

Η 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».

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

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

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

· GetSetting είναι το όνομα της συνάρτησης.

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

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

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

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

SaveSetting VBKeyName, Section, Key, MyString

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

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

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

MyVariant = SetAllSettings(VBKeyName, Section)

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

· SetAllSettings είναι το όνομα της συνάρτησης.

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

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

DeleteSetting VBKeyName, Section, Key

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

Ερωτήσεις ασφαλείας για αυτοεξέταση

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



Μπλουζα