Προγραμματισμός Η/Υ. Ενότητα 12 η : Αρχεία Κειμένου. Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Λογιστικής & Χρηματοοικονομικής

Σχετικά έγγραφα
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Αρχεία κειμένου και η VB.NET

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Ανάπτυξη εφαρμογής Input-Output

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Υπολογιστικά Συστήματα

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

Δομημένος Προγραμματισμός

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Τοπικές vs Καθολικές Μεταβλητές ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Υπολογιστικά Συστήματα

Ανάπτυξη εφαρμογής Input-Output

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Υπολογιστικά Συστήματα

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 6 : Δομές αρχείων. Δρ. Γκόγκος Χρήστος

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Λογιστικές Εφαρμογές Εργαστήριο

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Μεθόδων Επίλυσης Προβλημάτων

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Προγραμματισμός και Εφαρμογές Υπολογιστών

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός H/Y Ενότητα 7: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστραφής Προγραμματισμός

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Πληροφορική ΙΙ Θεματική Ενότητα 13

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Προγραμματισμός και Εφαρμογές Υπολογιστών

S, (5, -3, 34, -23, 7) ( *, _

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

Ευφυής Προγραμματισμός

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Πληροφορική. Εργαστηριακή Ενότητα 8 η : Γραφήματα

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Πληροφορική. Εργαστηριακή Ενότητα 2 η : Το βιβλίο εργασίας του MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Ψηφιακή Επεξεργασία Σήματος

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Χρήση εργαλείων Εικόνων, Εντολών και Ετικετών ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Διαδικαστικός Προγραμματισμός

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΜΕΤΑΒΛΗΤΕΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Εισαγωγή στην Πληροφορική

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Εργαστήριο 9: Αρχεία

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Τα Σχήματα ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Διαδικτύου

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Προγραμματισμός και Εφαρμογές Υπολογιστών

Αυτοματοποιημένη χαρτογραφία

Λειτουργικά Συστήματα

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Υπολογιστικά Συστήματα

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Ενότητα. Εισαγωγή στη Microsoft Access

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΠΛΗΡΟΦΟΡΙΚΗ. Ενότητα: Εργαστηριακές Ασκήσεις. Καθηγήτρια: Ι.

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( )

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition

Τ.Ε.Ι. ΛΑΜΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Προγραμματισμός και Εφαρμογές Υπολογιστών

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών. Μανόλης Γ.Η.

Transcript:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Προγραμματισμός Η/Υ Ενότητα 12 η : Αρχεία Κειμένου Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Λογιστικής & Χρηματοοικονομικής

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Σκοποί ενότητας Στην συγκεκριμένη ενότητα παρουσιάζονται τρόποι για να διαχειριστούμε αρχεία κειμένου στην εφαρμογή μας (ανάγνωση, αποθήκευση και επεξεργασία δεδομένων που βρίσκονται σε αρχεία τύπου κειμένου) με τη Γλώσσα Προγραμματισμού Visual Basic.NET. 4

Περιεχόμενα Αρχεία κειμένου Ανάγνωση & αποθήκευση δεδομένων σε αρχεία κειμένου Χρήση των: FileOpen, LineInput, EOF, Write, WriteLine, Print, PrintLine & FileClose Οι κλάσεις StreamReader & StreamWriter Οι μέθοδοι ReadLine, Read, WriteLine, Write & Close Το αντικείμενο My.Computer.FileSystem 5

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

Βάσεις Δεδομένων Η διαχείριση αρχείων για την αποδοτική εκμετάλλευση των δεδομένων μας δεν αποτελεί απλό πρόβλημα & αποτελεί αντικείμενο ξεχωριστού μαθήματος. Στην πιο απλή μορφή του η διαχείριση των δεδομένων μιας εφαρμογής περιλαμβάνει να γνωρίζουμε πως μπορούμε να αποθηκεύουμε / διαβάζουμε / τροποποιούμε / αναζητούμε δεδομένα σε κάποιο αρχείο του λειτουργικού συστήματος του υπολογιστή. Στις εμπορικές εφαρμογές το πρόβλημα της διαχείρισης των δεδομένων το αναλαμβάνουν ειδικά συστήματα λογισμικού που ονομάζονται "Συστήματα Διαχείρισης Βάσεων Δεδομένων" (DataBase Management Systems). Στο συγκεκριμένο μάθημα θα ασχοληθούμε με τη διαχείριση δεδομένων σε αρχεία κειμένου. 7

Παράδειγμα Βάσης Δεδομένων Από τη Βάση Δεδομένων Nortwind.mdb του περιβάλλοντος Microsoft Access 8

Φόρμα με δεδομένα από Database Από τη Βάση Δεδομένων Nortwind.mdb του περιβάλλοντος Microsoft Access 9

Πίνακας με δεδομένα από Database Από τη Βάση Δεδομένων Nortwind.mdb του περιβάλλοντος Microsoft Access 10

Αρχεία Κειμένου Ένα αρχείο κειμένου περιλαμβάνει μια ή περισσότερες γραμμές από στοιχεία που είναι συνήθως απλό κείμενo (plain text). Το απλό κείμενο διαβάζεται άμεσα χωρίς τη βοήθεια κάποιου ειδικού προγράμματος γιατί δεν περιλαμβάνει στοιχεία μορφοποίησης (formatting) όπως συμβαίνει, για παράδειγμα, με τα αρχεία των προγραμμάτων επεξεργασίας κειμένου. Η κωδικοποίηση των χαρακτήρων πρέπει να ακολουθεί κάποιο πρότυπο για να μπορούμε να ανταλλάσουμε & να διαβάζουμε αρχεία από διαφορετικά υπολογιστικά συστήματα χωρίς πρόβλημα. 11

Αρχεία Κειμένου Κωδικοποίηση Χαρακτήρων Ένα τέτοιο πρότυπο είναι το πρότυπο ASCII (American Standard Code for Information Interchange) που χρησιμοποιείται μέχρι σήμερα. Επειδή το πρότυπο ASCII παριστάνει μόνο τους χαρακτήρες της αγγλικής γλώσσας χρειάστηκε να αναπτυχθούν διάφορες κωδικοποιήσεις επεκτάσεις που να υποστηρίζουν και άλλες γλώσσες. Σήμερα, όπως έχουμε αναφέρει το βιομηχανικό πρότυπο για την αναπαράσταση και τον χειρισμό κειμένου σε οποιαδήποτε γλώσσα είναι το πρότυπο Unicode με τo πιο διαδεδομένο σχήμα κωδικοποίησης το UTF-8. 12

Κωδικοποίηση ASCII 13

Παράδειγμα Μπορούμε να πάρουμε ή να δούμε έναν χαρακτήρα από τον αντίστοιχο πίνακα κωδικοποίησης των χαρακτήρων χρησιμοποιώντας τις συναρτήσεις Chr() & Asc(). Για παράδειγμα, δείτε τις επόμενες εντολές: Dim MyChar As Char MyChar = Chr(65) 'Θα επιστρέψει τον χαρακτήρα Α MyChar = Chr(97) 'Θα επιστρέψει τον χαρακτήρα a MyChar = Chr(62) 'Θα επιστρέψει τον χαρακτήρα > Dim MyCharCode As Integer MyCharCode = Asc("A") 'Θα επιστρέψει τον αριθμό 65 MyCharCode = Asc("a") 'Θα επιστρέψει τον αριθμό 97 MyCharCode = Asc(">") 'Θα επιστρέψει τον αριθμό 62 Το.NET υποστηρίζει για όλα τα κείμενα (Strings) την κωδικοποίηση Unicode. 14

Η Διαδικασία Ανάγνωσης από Αρχείο Η διαδικασία για να διαβάσουμε δεδομένα από ένα αρχείο περιλαμβάνει τα παρακάτω 3 απλά βήματα: Άνοιγμα αρχείου για ανάγνωση Ανάγνωση δεδομένων από το αρχείο Κλείσιμο του αρχείου 15

Διαδικασία Ανάγνωσης Δεδομένων από Αρχείο Στη συνέχεια θα αναφερθούμε στην ανάγνωση δεδομένων με χρήση των παρακάτω συναρτήσεων: FileOpen() άνοιγμα αρχείου LineInput(), Line() ανάγνωση FileClose() κλείσιμο αρχείου Οι παραπάνω συναρτήσεις προσφέρονται από παλαιότερες εκδόσεις της Visual Basic & για λόγους συμβατότητας ισχύουν ακόμα 16

Άνοιγμα Αρχείου με την FileOpen() Η FileOpen() είναι μια συνάρτηση που χρειάζεται 3 βασικά ορίσματα για να ανοίξει ένα αρχείο : Έναν αριθμό αρχείου (προσδιορίζει μονοσήμαντα το συγκεκριμένο αρχείο) Ένα όνομα αρχείου (το πλήρες μονοπάτι - path που βρίσκεται το αρχείο) Τον τρόπο χρήσης του αρχείου (για αρχεία κειμένου Input, Output ή Append) Για παράδειγμα η παρακάτω εντολή θα ανοίξει το αρχείο με όνομα test.txt που βρίσκεται στο μονοπάτι c:\ για ανάγνωση & θα το συσχετίσει με τον αριθμό 1. Τι θα συμβεί αν το αρχείο δεν υπάρχει? FileOpen(1,"c:\test.txt", OpenMode.Input) 17

Ανάγνωση γραμμών με την LineInput() Η LineInput(<αριθμός_αρχείου>) διαβάζει μια γραμμή από ένα ανοικτό αρχείο με αριθμό <αριθμός_αρχείου> και την επιστρέφει ως κείμενο (String). Τι σημαίνει όμως γραμμή; Που τελειώνει μια γραμμή; Το τέλος κάθε γραμμής σε ένα αρχείο κειμένου ορίζεται (για τα αρχεία κειμένου σε Windows λειτουργικό σύστημα) από τους χαρακτήρες carriage return & line feed. Στον πίνακα ASCII είναι οι χαρακτήρες με κωδικό 13 και 10. Δείτε τις συναρτήσεις chr(13) & chr(10) που αναφέραμε στην προηγούμενη διαφάνεια και δοκιμάστε να τρέξετε την παρακάτω εντολή: Console.WriteLine("Hello" & Chr(13) & Chr(10) & "World!!") Τι παρατηρείτε; 18

Παράδειγμα Δημιουργείστε το αρχείο κειμένου C:\Code.txt με το πρόγραμμα Notepad και αντιγράψτε τον παρακάτω κώδικα. Στη συνέχεια τρέξτε τον κώδικα μέσα από το Visual Studio ως Console Application: Προσέξτε τη συνάρτηση FileClose(1) στο τέλος του κώδικα που "κλείνει" το κανάλι επικοινωνίας με αριθμό 1. Το κανάλι αυτό είχε ανοίξει με τη συνάρτηση FileOpen. Τι κάνει όμως η συνάρτηση EOF(); Dim TextLine As String FileOpen(1, "C:\Code.txt", OpenMode.Input) While Not EOF(1) TextLine = LineInput(1) Console.WriteLine(TextLine) End While FileClose(1) 19

Η συνάρτηση EOF() Στο τέλος κάθε αρχείου κειμένου μπαίνει ένας ειδικός χαρακτήρας που ονομάζεται EOF (End Of File). Η συνάρτηση EOF(αριθμός_αρχείου) επιστρέφει true όταν στο αρχείο με αριθμό "αριθμός_αρχείου" αναγνώστηκε το σημάδι τέλους αρχείου διαφορετικά επιστρέφει false. Με αυτόν τον τρόπο μπορούμε να διαβάζουμε συνεχώς στοιχεία από ένα αρχείο μέχρι να συναντήσουμε το σημάδι τέλους ή αλλιώτικα μέχρι να μας επιστρέψει η συνάρτηση EOF() την τιμή true. Τρέξτε τον διπλανό κώδικα, τι θα επιστρέψει; Dim TextLine As String, N As Integer FileOpen(1, "C:\code.txt", OpenMode.Input) While Not EOF(1) TextLine = LineInput(1) N = N + 1 End While Console.WriteLine(N) FileClose(1) 20

Ανάγνωση από την ίδια γραμμή Η εντολή Input() Η συνάρτηση Input() διαβάζει δεδομένα από ένα ανοικτό σειριακό αρχείο και τα αναθέτει σε μεταβλητές του προγράμματός μας. Τα ορίσματα που δέχεται είναι: Ένας αριθμός αρχείου (υποχρεωτικός) Ένα όνομα μεταβλητής (υποχρεωτικό) Tο αρχείο sample.txt περιέχει στην πρώτη του γραμμή τα στοιχεία: "Yannis",#01/01/2000#,true Μπορείτε να βρείτε το μήνυμα που θα εμφανίσει η εντολή MsgBox στο παρακάτω τμήμα κώδικα; Dim MyName As String, MyBirthDate As Date, MySex As Boolean FileOpen(1, "c:\sample.txt", OpenMode.Input) Input(1, MyName): Input(1, MyBirthDate): Input(1, MySex) MsgBox("Ονομα=" & MyName & vbcrlf & _ "Ημ.Γέννησης=" & MyBirthDate & vbcrlf & _ "Φύλο=" & IIF(MySex,"Αγόρι","Κορίτσι")) 21

Η Διαδικασία Εγγραφής σε Αρχείο Η διαδικασία για να γράψουμε δεδομένα σε ένα αρχείο περιλαμβάνει τα παρακάτω 3 απλά βήματα: Άνοιγμα αρχείου (για εγγραφή/προσθήκη) Εγγραφή δεδομένων στο αρχείο Κλείσιμο αρχείου 22

Διαδικασία Εγγραφής Δεδομένων σε Αρχείο Στη συνέχεια θα αναφερθούμε στην εγγραφή δεδομένων με χρήση των παρακάτω συναρτήσεων: FileOpen() άνοιγμα αρχείου WriteLine(), Write() εγγραφή FileClose() κλείσιμο αρχείου Οι παραπάνω συναρτήσεις προσφέρονται από παλαιότερες εκδόσεις της Visual Basic & για λόγους συμβατότητας ισχύουν ακόμα 23

Εγγραφή σε αρχείο με Write & WriteLine() Η συνάρτηση WriteLine() κάνει εγγραφή δεδομένων σε μια γραμμή του "ανοικτού" αρχείου που προσδιορίζουμε με τον αριθμό-1η παράμετρο της συνάρτησης ενώ η Write() κάνει εγγραφή δεδομένων χωρίς να αλλάζει γραμμή Αντιγράψτε και τρέξτε τον παρακάτω κώδικα μέσα από το Visual Studio ως Console Application. FileOpen(1, "g:\test.txt", OpenMode.Output) WriteLine(1, "Δοκιμαστική εκτύπωση.") Write(1, "Hello") : Write(1, "World") WriteLine(1) WriteLine (1, SPC(5), "5 συνεχόμενα κενά διαστήματα") WriteLine (1, TAB(10), "Hello") WriteLine (1, Now(), " είναι ημερομηνία σε πλήρη μορφή") FileClose(1) Παρατηρήστε την παράμετρο "OpenMode.Output" στο άνοιγμα του αρχείου. Τα δεδομένα που εγγράφονται με την Write διαβάζονται με την Input 24

Παράδειγμα εγγραφής & ανάγνωσης Private Sub Button1_Click( ) Handles Button1.Click TextBox4.Text = CSng(TextBox2.Text) * CSng(TextBox3.Text) End Sub Private Sub Button2_Click( ) Handles Button2.Click FileOpen(1, "g:\products.txt", OpenMode.Append) WriteLine(1, TextBox1.Text, CSng(TextBox2.Text), _ CSng(TextBox3.Text), CSng(TextBox4.Text)) FileClose(1) End Sub Private Sub Button3_Click( ) Handles Button3.Click Dim ProductName As String, Price, Units, Total As Single Input(1, ProductName) : Input(1, Price) : Input(1, Units) : Input(1, Total) TextBox1.Text = ProductName TextBox2.Text = CStr(Price) TextBox3.Text = CStr(Units) TextBox4.Text = CStr(Total) End Sub Private Sub Button5_Click( ) Handles Button5.Click FileOpen(1, "g:\products.txt", OpenMode.Input) End Sub Private Sub Button4_Click( ) Handles Button4.Click FileClose(1) End Sub 25

Ανάγνωση από αρχείο με αντικείμενο StreamReader Ένας άλλος τρόπος για να διαχειριστούμε αρχεία κειμένου είναι με τη βοήθεια αντικειμένων από τις κλάσεις StreamReader & StreamWriter που βρίσκονται στη Βιβλιοθήκη (namespace) System.IO του.net. Για να έχουμε πρόσβαση γράφουμε κατά τη δήλωση ολόκληρο το όνομα π.χ. System.IO.StreamReader ή προσθέτουμε στο τμήμα δηλώσεων της ενότητας κώδικα που χρησιμοποιούμε τη δήλωση Imports System.IO Αντιγράψτε και τρέξτε τον παρακάτω κώδικα ως Console Application: Imports System.IO Module Module1 Sub Main() Dim LineString As String, sr As New StreamReader("c:\sample.txt") While Not sr.endofstream LineString = sr.readline() Console.WriteLine(LineString) End While sr.close() End Sub End Module 26

Εγγραφή σε αρχείο με αντικείμενο StreamWriter Για να κάνουμε εγγραφή σε αρχείο με αντικείμενο της κλάσης StreamWriter εργαζόμαστε παρόμοια. Καταρχάς δηλώνουμε τη Βιβλιοθήκη (namespace) System.IO του.net στο τμήμα δηλώσεων της ενότητας κώδικα που χρησιμοποιούμε (εναλλακτικά μπορούμε να δηλώσουμε ένα αντικείμενο StreamWriter ως System.IO.StreamWriter) και στη συνέχεια χρησιμοποιούμε τις μεθόδους WriteLine ή Write ανάλογα αν θέλουμε ή όχι μετά την εγγραφή να μπει το σημάδι αλλαγής γραμμής (vbcrlf). Αντιγράψτε και τρέξτε τον κώδικα της επόμενης διαφάνειας ως Console Application: 27

Παράδειγμα Imports System.IO Module Module1 Sub Main() Dim sr As New StreamWriter("c:\sample1.txt") sr.writeline("yannis") sr.writeline(#01/01/2000#) sr.writeline("-------------------") sr.write("the date is: ") sr.writeline(datetime.now) sr.close() End Sub End Module 28

Το αντικείμενο My.Computer.FileSystem Η Visual Basic προτείνει το παραπάνω αντικείμενο ως ένα πιο εύκολο και ταχύτερο τρόπο για να διαχειριζόμαστε αρχεία (files), φακέλους (folders) και συσκευές με δεδομένα (drives) Το αντικείμενο My.Computer.FileSystem διαθέτει ένα σύνολο από μεθόδους γιαυτό το σκοπό, όπως: ReadAllText, WriteAllText CopyFile, DeleteFile, MoveFile, RenameFile CreateDirectory, CopyDirectory, DeleteDirectory, MoveDirectory GetFiles (μας δίνει διάφορες δυνατότητες όπως το να βρούμε ένα σύνολο από αρχεία με συγκεκριμένο pattern πχ *.txt κλπ) 29

Μέθοδοι ReadAllText, WriteAllText Η μέθοδος ReadAllText μας επιτρέπει να διαβάσουμε ολόκληρο το περιεχόμενο ενός text file: Dim MyFile As String MyFile = My.Computer.FileSystem.ReadAllText("G:\words.txt") MsgBox(MyFile) Dim filereader As String filereader = My.Computer.FileSystem.ReadAllText("G:\test.txt", _ System.Text.Encoding.UTF8) MsgBox(fileReader) Η μέθοδος WriteAllText μας επιτρέπει να γράψουμε κείμενο σε ένα text file: My.Computer.FileSystem.WriteAllText("G:\test.txt", "This is new text to be added.",true) 30

Μέθοδοι CopyFile, DeleteFile, MoveFile, RenameFile My.Computer.FileSystem.CopyFile("G:\test.txt", "G:\test2.txt") My.Computer.FileSystem.DeleteFile("G:\test.txt") My.Computer.FileSystem.MoveFile("G:\test.txt", "G:\tmp\test.txt") My.Computer.FileSystem.RenameFile("G:\Test.txt", NewTest.txt ) 31

Μέθοδοι CreateDirectory, CopyDirectory, DeleteDirectory, MoveDirectory My.Computer.FileSystem.CreateDirectory( "G:\TESTDirectory") My.Computer.FileSystem.CopyDirectory("G:\tmp", "C:\tmp2") My.Computer.FileSystem.DeleteDirectory("G:\tmp") My.Computer.FileSystem.MoveDirectory("G:\tmp", "G:\NEWDir") 32

Μέθοδος GetFiles Private Sub Button1_Click( ) Handles Button1.Click For Each f As String In My.Computer.FileSystem.GetFiles(_ My.Computer.FileSystem.SpecialDirectories.MyDocuments) ListBox1.Items.Add(f) Next End Sub 33

Τέλος Ενότητας