Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 10 : Αρχεία. Αλέξανδρος Τζάλλας

Σχετικά έγγραφα
Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 8 : Πίνακες IΙ. Αλέξανδρος Τζάλλας

Προγραμματισμός Ι Ενότητα 6 :

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 4 : Υποπρογράμματα I. Αλέξανδρος Τζάλλας

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

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

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

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 5 : Υποπρογράμματα II. Αλέξανδρος Τζάλλας

Προγραμματισμός Ι. Ασκήσεις. Τζάλλας Αλέξανδρος, Καθηγητής Εφαρμογών. Τμ. Μηχανικών Πληροφορικής Τ.Ε.

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 9 : Εγγραφές, Σύνολα. Αλέξανδρος Τζάλλας

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 7 : Πίνακες I. Αλέξανδρος Τζάλλας

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 10 : Κατασκευή ΝΠΑ. Αλέξανδρος Τζάλλας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 12 : Ασκήσεις Επανάληψης Β. Αλέξανδρος Τζάλλας

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 8 : Αυτόματα NFA - DFA. Αλέξανδρος Τζάλλας

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

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

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

Δομές Δεδομένων Ενότητα 1

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

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

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

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

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

Αρχιτεκτονική υπολογιστών

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

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

Αρχιτεκτονική υπολογιστών

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 3 : Εντολές Επανάληψης. Αλέξανδρος Τζάλλας

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 3 : Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 4 : Πράξεις με bits. Δρ. Γκόγκος Χρήστος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 13 : Ασκήσεις Επανάληψης Γ. Αλέξανδρος Τζάλλας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 9 : Κανονικές Εκφράσεις. Αλέξανδρος Τζάλλας

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

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

Ηλεκτρονικοί Υπολογιστές

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Αρχιτεκτονική υπολογιστών

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Φωνολογική Ανάπτυξη και Διαταραχές

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 11 : Γραμματικές χωρίς συμφραζόμενα. Αλέξανδρος Τζάλλας

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 3 : Γραφήματα & Αποδείξεις. Αλέξανδρος Τζάλλας

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

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

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

Εισαγωγή στους Αλγορίθμους

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 2 : Σύνολα & Σχέσεις (2/2) Αλέξανδρος Τζάλλας

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

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

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

Αρχιτεκτονική υπολογιστών

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

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

Αρχιτεκτονική υπολογιστών

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

Ιστορία της μετάφρασης

Νοσηλευτική Σεμινάρια

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Εισαγωγή στους Αλγορίθμους

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

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

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Εισαγωγή στους Υπολογιστές

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

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

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Εισαγωγή στους Υπολογιστές

Θεωρία Υπολογισμού Αλφάβητα, Γλώσσες, Κανονικές Εκφράσεις

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

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

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

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

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Εισαγωγή στον Προγραμματισμό Η/Υ (Fortran 90/95/2003)

Στατιστική. 5 ο Μάθημα: Βασικές Έννοιες Εκτιμητικής. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Διοικητική των επιχειρήσεων

Θεωρία Υπολογισμού. Ενότητα 5 : Λογικά Επιχειρήματα, Αλφάβητα & Γλώσσες (2/2) Αλέξανδρος Τζάλλας

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

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

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

Διδακτική της Πληροφορικής

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 1 : Σύνολα & Σχέσεις (1/2) Αλέξανδρος Τζάλλας

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Transcript:

1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Προγραμματισμός Ι Ενότητα 10 : Αρχεία Αλέξανδρος Τζάλλας

2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής Τ.Ε Προγραμματισμός Ι Αλέξανδρος Τζάλλας Λέκτορας Άρτα, 2015 Ενότητα 10 : Αρχεία

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

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

Σκοποί ενότητας Να γίνει σαφής ο τρόπος χειρισμού των αρχείων. Να περιγραφεί ο τρόπος ανοίγματος ή κλεισίματος, επεξεργασίας και χειρισμού αρχείων κειμένου. Να περιγραφεί ο τρόπος χειρισμού αρχείων με τύπο. 5 5

Περιεχόμενα ενότητας Εισαγωγικές έννοιες Αρχεία Κειμένου. Άνοιγμα ή κλείσιμο αρχείων Επεξεργασία αρχείων Χειρισμός αρχείων Αρχεία Με Τύπο 6 6

Εισαγωγικά Aρχείο: Σύνθετος τύπος δεδομένων με δόμηση. Όπως στα σύνολα και στις εγγραφές έτσι και στο αρχείο δίνεται ένα όνομα, η προσπέλαση όμως σε κάθε συνιστώσα γίνεται ξεχωριστά. H προσπέλαση σε μία συνιστώσα γίνεται με το όνομά της ανεξάρτητα από τη θέση της, ενώ σε τύπους με δόμηση η προσπέλαση γίνεται σύμφωνα με τη θέση της στη συλλογή και όχι με το όνομά της. Επιτρεπτές πράξεις: Eκχώρηση τιμών, αποθήκευση, ανάκτηση μεμονωμένων συνιστωσών. 7 7

Αρχεία Κειμένου 1/2 Αποτελούνται από χαρακτήρες και χωρίζονται σε γραμμές οι οποίες τελειώνουν με το χαρακτήρα μεταφοράς στην επόμενη γραμμή (CR/LF). Για να χρησιμοποιήσουμε ένα αρχείο κειμένου, πρέπει να του δώσουμε ένα όνομα και να δηλώσουμε τον τύπο του με τη λέξη Text. Για να χρησιμοποιήσουμε ένα αρχείο για είσοδο ή έξοδο πρέπει να δώσουμε και το πραγματικό όνομα του αρχείου του δίσκου στο οποίο αναφέρεται διαδικασία assign. 8 8

Αρχεία Κειμένου 2/2 var mathites: text; begin assign (mathites, C:/students.dat ); Το όνομα του αρχείου στο δίσκο (c:students.dat), στο οποίο αναφέρεται το αρχείο με τη χρήση της διαδικασίας assign, χρησιμοποιείται μόνο μία φορά. Όλες οι άλλες αναφορές του αρχείου στο πρόγραμμα γίνονται με το όνομά του, όπως αυτό δηλώθηκε στην περιοχή δήλωσης των μεταβλητών (mathites). 9 9

Άνοιγμα/κλείσιμο αρχείων 1/3 reset (F1): Όπου F1 είναι μεταβλητή τύπου αρχείου, όπως έχει καθοριστεί από την εντολή assign. Ενέργεια: Η εντολή αυτή ανοίγει ένα αρχείο που υπάρχει, με δυνατότητα ανάγνωσης ή εγγραφής σε αυτό. Αν το αρχείο είναι τύπου text, τότε το αρχείο μπορεί να χρησιμοποιηθεί μόνο για ανάγνωση. 10 1

Άνοιγμα/κλείσιμο αρχείων 2/3 rewrite (F1): Όπου F1 είναι μεταβλητή τύπου αρχείου, όπως έχει καθοριστεί από την εντολή assign. Ενέργεια: Η εντολή αυτή δημιουργεί ένα αρχείο για εγγραφή. Αν το αρχείο αυτό τότε τα δεδομένα που είναι αποθηκευμένα στο αρχείο καταστρέφονται. 11 1

Άνοιγμα/κλείσιμο αρχείων 3/3 close (F1): Όπου F1 είναι μεταβλητή τύπου αρχείου, όπως έχει καθοριστεί από την εντολή assign. Ενέργεια: Η εντολή αυτή κλείνει το αρχείο F1 και ενημερώνει τον κατάλογο (directory). Μετά τη χρήση του αρχείου και πριν τελειώσει το πρόγραμμα, χρησιμοποιείται η εντολή close για το κλείσιμο του αρχείου. Εάν δε χρησιμοποιηθεί και έχουμε ανοίξει αρχείο για εγγραφή, τότε είναι πιθανό να χάσουμε ορισμένα από τα τελευταία δεδομένα που γράφτηκαν. 12 1

Άνοιγμα/κλείσιμο αρχείων 4/4 append (F1):Όπου F1 είναι μεταβλητή τύπου αρχείου, όπως έχει καθοριστεί από την εντολή assign. Ενέργεια: Ανοίγει ένα αρχείο τύπου κειμένου για εγγραφή και συγκεκριμένα για πρόσθεση νέωνδεδομένων στο τέλος του αρχείου και τα νέα δεδομένα δε σβήνουν τα παλιά. 13 1

Επεξεργασία αρχείων 1/5 read/ readln (F1, M1, M2,, Mn): Όπου F1 είναι μεταβλητή τύπου αρχείου, όπως έχει καθοριστεί από την εντολή assign και M1, M2,,Mn είναι τα ονόματα των μεταβλητών. Ενέργεια: Η εντολή read διαβάζει δεδομένα από το αρχείο F1 και τα αποθηκεύει στις μεταβλητές M1, M2,,Mn. Η εντολή readln, η οποία χρησιμοποιείται μόνο σε αρχεία κειμένου, διαβάζει δεδομένα με τον ίδιο τρόπο αλλά μετά την εκτέλεσή της ο δείκτης του αρχείου μετακινείται προς την επόμενη γραμμή του κειμένου του αρχείου. 14 1

Επεξεργασία αρχείων 2/5 eof (F1): Όπου F1 είναι μεταβλητή τύπου αρχείου, όπως έχει καθοριστεί από την εντολή assign. Ενέργεια: Η συνάρτηση είναι boolean και επιστρέφει την τιμή true, αν βρεθεί η ένδειξη τέλους του αρχείου (τέλος δεδομένων), αλλιώς, επιστρέφει την τιμή false. 15 1

Επεξεργασία αρχείων 3/5 seekeof (F1): Όπου F1 είναι μεταβλητή τύπου αρχείου, όπως έχει καθοριστεί από την εντολή assign. Ενέργεια: Η συνάρτηση είναι boolean και επιστρέφει την τιμή true, αν βρεθεί η ένδειξη τέλους του αρχείου (τέλος δεδομένων), αλλιώς, επιστρέφει την τιμή false. Είναι αντίστοιχη της συνάρτησης eof με τη διαφορά ότι παραλείπει όλα τα κενά και τους χαρακτήρες τέλους γραμμής. 16 1

Επεξεργασία αρχείων 4/5 eoln (F1): Όπου F1 είναι μεταβλητή τύπου αρχείου, όπως έχει καθοριστεί από την εντολή assign. Ενέργεια: Η συνάρτηση δηλώνει αν υπάρχουν ακόμη χαρακτήρες στην τρέχουσα γραμμή. Η συνάρτηση επιστρέφει την τιμή true, αν διαβάζοντας βρει το τέλος της γραμμής ή το τέλος του αρχείου, αλλιώς επιστρέφει την τιμή false. 17 1

Επεξεργασία αρχείων 5/5 Ioresult: Ενέργεια: Η συνάρτηση επιστρέφει μία ακέραια τιμή που δείχνει την κατάσταση της τελευταίας εντολής εισόδου/ εξόδου/ Η συνάρτηση είναι χωρίς παράμετρο. Αν η τελευταία λειτουργία εισόδου/ εξόδου τελειώσει επιτυχώς, τότε η συνάρτηση επιστρέφει την τιμή 0 (μηδέν). Για να λειτουργήσει η συνάρτηση πρέπει να έχει δηλωθεί προς τον compiler της Pascal η δήλωση{$i-} που δίνει στο χρήστη τη δυνατότητα ελέγχου των λαθών που έχουν σχέση με είσοδο και έξοδο. 18 1

Χειρισμός αρχείων 1/3 eof (F1): Όπου F1 είναι μεταβλητή τύπου αρχείου, και F2 το όνομα του αρχείου στο Λειτουργικό Σύστημα. Ενέργεια: Η εντολή αυτή αντιστοιχίζει στη μεταβλητή F1 το όνομα του αρχείου F2, έτσι όπως έχει οριστεί στο Λειτου erase (F1): Όπου F1 είναι μεταβλητή τύπου αρχείου, όπως έχει καθοριστεί από την εντολή assign. Ενέργεια: Η εντολή διαγράφει από το δίσκο το αρχείο που αντιστοιχεί στην μεταβλητή F1. 19 1

Χειρισμός αρχείων 2/3 assign (F1, F2): Όπου F1 είναι μεταβλητή τύπου αρχείου, και F2 το όνομα του αρχείου στο Λειτουργικό Σύστημα. Ενέργεια: Η εντολή αυτή αντιστοιχίζει στη μεταβλητή F1 το όνομα του αρχείου F2, έτσι όπως έχει οριστεί στο Λειτου erase (F1): Όπου F1 είναι μεταβλητή τύπου αρχείου, όπως έχει καθοριστεί από την εντολή assign. Ενέργεια: Η εντολή διαγράφει από το δίσκο το αρχείο που αντιστοιχεί στην μεταβλητή F1. 20 2

Χειρισμός αρχείων 3/3 assign (F1, F2): Όπου F1 είναι μεταβλητή τύπου αρχείου, και F2 το όνομα του αρχείου στο Λειτουργικό Σύστημα. Ενέργεια: Η εντολή αυτή αντιστοιχίζει στη μεταβλητή F1 το όνομα του αρχείου F2, έτσι όπως έχει οριστεί στο Λειτου erase (F1): Όπου F1 είναι μεταβλητή τύπου αρχείου, όπως έχει καθοριστεί από την εντολή assign. Ενέργεια: Η εντολή διαγράφει από το δίσκο το αρχείο που αντιστοιχεί στην μεταβλητή F1. 21 2

Παράδειγμα 1 Εγγραφή σε αρχείο κειμένου Program paradeigma_14; Var fname, txt : string; Userfile : text; Begin Write('dose onoma arxeiou (px.c:\test.txt) :'); Readln(fname); Assign(userfile, fname); Rewrite(userfile); Writeln('grapse to kimeno : '); Readln(txt); Writeln(userfile,txt); Close(userfile); End. 22 2

Ανάγνωση από αρχείο κειμένου Παράδειγμα 2 Program paradeigma_15; Var userfile : text; Filename, tfile : string; Begin Write('dose onoma arxeiou (px.c:\test.txt) :'); Readln(filename); Assign(userfile, filename); Reset(userfile); Repeat Readln(userfile,tfile); Writeln(tfile); Until eof(userfile); Close(userfile); Readln; End. 23 2

Διαγραφή Αρχείου ( Προσοχή Κίνδυνος!!! ) Παράδειγμα 3 Program paradeigma_16; Var ufile : text; Filename : string; Begin Write('dose onoma arxeiou (px.c:\test.txt) :'); Readln(filename); Assign(ufile,filename); Erase(ufile); End. Επεξήγηση Προγράμματος Erase(UFile); Άνοιγμα του αρχείου FileName για διαγραφή. 24 2

Παράδειγμα 4 1/2 Να γράψετε μια διαδικασία (procedure) στην Pascal που θα ζητά τις πληροφορίες: όνομα, επίθετο, email, τηλέφωνο και να τις αποθηκεύει σε αρχείο κειμένου(append). Στη συνέχεια θα γίνεται ερώτηση αν θέλουμε να συνεχίσουμε να προσθέτουμε δεδομένα στο αρχείο. Αν η απάντηση είναι θετική θα ξανακαλείται η διαδικασία, ενώ αν είναι αρνητική θα τερματίζεται το πρόγραμμα. Τα δεδομένα να αποθηκεύονται στο αρχείο στην εξής μορφή Onoma : Toto Epitheto : Blabla email: mymail@teiep.com Tilefono : 2109999999 25 2

Παράδειγμα 4 2/2 Program paradeigma_17; Procedure insert(); Var Userfile : text; Name, surname, mail, phone : string; Yn : char; Begin Assign(userfile, 'c:\phonebook.txt'); {to arxeio c:\phonebook.txt prepei na yparxei gia na mporesei na ginei Append!!!} Append(userfile); Write('onoma: '); Readln(name); Write('epitheto: '); Readln(surname); Write('email:'); Readln(mail); Write('tilefono: '); Readln(phone); Writeln(userfile, 'onoma: ' + name); Writeln(userfile, 'epitheto: ' + surname); Writeln(userfile, 'email:' + mail); Writeln(userfile, 'tilefono: ' + phone); Writeln(userfile, ''); Close(userfile); Write('thelete na sinexisete (y/n) :'); Readln(yn); If(yn='y') then Begin Clrscr; {katharismos tis othonis} Insert(); End Else Begin Write('bye bye...'); Exit; {exodos apo to programma} 26 2

Αρχεία Με Τύπο 1/7 Τα αρχεία με τύπο (typed files) είναι αρχεία, όπου οι αριθμητικές τιμές απεικονίζονται σε αριθμητική μορφή και όχι σε μορφή χαρακτήρων, όπως στα αρχεία κειμένου. Οι συνιστώσες του αρχείου μπορεί να είναι κάθε τύπου, απλού, σύνθετου, με δόμηση κτλ. με εξαίρεση τον τύπο αρχείου. Τα αρχεία αποτελούνται από εγγραφές ενός συγκεκριμένου τύπου πχ ακεραίου, πραγματικού κτλ. 27 2

Αρχεία Με Τύπο 2/7 Η δόμηση των αρχείων ορισμένου τύπου προσδιορίζεται από τον τύπο των δεδομένων τα οποία θα αποθηκευτούν σε αυτά. Για να χρησιμοποιήσουμε ένα αρχείο, πρέπει να του δώσουμε ένα όνομα και να δηλώσουμε ότι είναι αρχείο (file), και να δηλώσουμε τον τύπο των δεδομένων που αποθηκεύονται σε αυτό. Τα δεδομένα είναι οργανωμένα σε εγγραφές (records) και κάθε δεδομένο αποτελεί μία εγγραφή. Το μήκος μίας εγγραφής είναι ο αριθμός των bytes τα οποία απαιτούνται για την αποθήκευση του συγκεκριμένου τύπου. 28 2

Αρχεία Με Τύπο 3/7 Οι εντολές reset, rewrite, read, write, append, assign, close, erase, rename και eof που είναι διαθέσιμες από τη γλώσσα Pascal για τα αρχεία κειμένου ισχύουν με την ίδια σημασία και για τα αρχεία με τύπο. Οι εντολές read και write είναι απλοποιημένες, αφού μία μόνο συνιστώσα διαβάζεται ή γράφεται στο αρχείο κάθε φορά που εκτελούνται. Τα αρχεία με τύπο ονομάζονται και δυαδικά (binary) γιατί η εσωτερική απεικόνιση των δεδομένων στη μνήμη είναι ίδια με την εξωτερική απεικόνιση των δεδομένων στο αρχείο. 29 2

Αρχεία Με Τύπο 4/7 Τα δυαδικά αρχεία διαθέτουν έναν αριθμό σειράς για κάθε συνιστώσα (εγγραφή) αρχίζοντας από το μηδέν. Εκτός από τη σειριακή προσπέλαση που μπορεί να γίνει με την εντολή read, η οποία κάθε φορά διαβάζει την επόμενη εγγραφή, μία τυχαία εγγραφή μπορεί να βρεθεί αν δοθεί ο αριθμός της σειράς της. Η άμεση ή τυχαία προσπέλαση επιτυγχάνεται με έναν ειδικό δείκτη, το δείκτη εγγραφής αρχείου (file pointer). 30 3

Οι ενέργειες είναι: Αρχεία Με Τύπο 5/7 1. Ενημερώνεται ο δείκτης αρχείου με τον αριθμό της εγγραφής του αρχείου που θέλουμε να διαβάσουμε ή να γράψουμε. 2. Χρησιμοποιείται η αντίστοιχη εντολή ανάγνωσης ή εγγραφής, η οποία εκτελείται πάνω στην τρέχουσα εγγραφή. 31 3

Αρχεία Με Τύπο 6/7 seek (F1, R): Όπου F1 είναι μεταβλητή τύπου αρχείου, όπως έχει καθοριστεί από την εντολή assign, και R η θέση της προς αναζήτηση εγγραφής στο αρχείο. Ενέργεια: Η εντολή, η οποία είναι διαδικασία, τοποθετεί το δείκτη ανάγνωσης/εγγραφής στο record με αριθμό Rγια μελλοντικό read ή write. Η εντολή δε λειτουργεί σε αρχεία τύπου TEXT. Η πρώτη εγγραφή του αρχείου έχει αριθμό μηδέν (0). 32 3

Αρχεία Με Τύπο 7/7 filepos (F1): Όπου F1 είναι μεταβλητή τύπου αρχείου, όπως έχει καθοριστεί από την εντολή assign. Ενέργεια: Η συνάρτηση επιστρέφει τη θέση του αρχείου όπου θα διαβαστεί ή θα γραφεί η επόμενη εγγραφή. Στην αρχή του αρχείου η συνάρτηση επιστρέφει την τιμή μηδέν (0), στο τέλος του αρχείου επιστρέφει την ίδια τιμή με τη filesize. 33 3

Παράδειγμα Program paradeigma_18; Var a,i:integer; Var fp1: file of integer; Begin Assign(fp1,'tempo.dat'); Rewrite(fp1); For i:=1 to 5 do Begin Write('dose enan akeraio: '); Readln(a); Write(fp1,a); End; Close(fp1); Reset(fp1); Writeln('ta dedomena tou arxeiou einai:'); While not eof(fp1) do Begin Read(fp1,a); Writeln(a); End; Writeln; Close(fp1); End. 34 3

3 Βιβλιογραφία Βλαχάβας Ι. (1994). Η γλώσσα προγραμματισμού Pascal. Εκδόσεις Γαρταγάνης Διονύσιος. Κάβουρας Ι.Κ. (1999). Δομημένος Προγραμματισμός με Pascal. Εκδόσεις Κλειδάριθμος. Αλεβίζου Θ., & Καμπουρέλης Α. (1995). Μαθήματα Προγραμματισμού: Εισαγωγη με τη Γλώσσα Pascal. Εκδόσεις Παπασωτηρίου. Cooper D. (1993). Oh! Pascal!, An Introduction to Computing, του. Εκδόσεις Norton. Larry R.N. (1998). Advanced Programming in Pascal with Data Structures. Εκδόσεις Macmillan USA. Τσελίκης Γ.Σ., Τσελίκας Ν.Δ. (2012). C: από τη Θεωρία στην Εφαρμογή (B' Έκδοση). Εκδόσεις Παπασωτηρίου. Aho A.V., Hopcroft J.E., & Ullman J.D. (1974). The design and analysis of computer algorithms. Εκδόσεις Addison Wesley. Abelson Η., Sussman G.J., Sussman J. (1985). Structure and Interpretation of Computer Programs, MIT Press, McGraw Hill Book Company.

3 36 Σημείωμα Αναφοράς Copyright Τεχνολογικό Ίδρυμα Ηπείρου. Αλέξανδρος Τζάλλας. Προγραμματισμός Ι. Έκδοση: 1.0 Άρτα, 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: http://eclass.teiep.gr/openclass/courses/comp111/

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 4.0 Διεθνές [1] ή μεταγενέστερη. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, Διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. [1] http://creativecommons.org/licenses/by-nc-nd/4.0/deed.el 3

3 Τέλος Ενότητας Επεξεργασία: Ευάγγελος Καρβούνης Άρτα, 2015

3 Τέλος Ενότητας Αρχεία