Προγραμματισμός Η/Υ Χειρισμός Αρχείων ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος
Αρχεία Συλλογές δεδομένων. Αποθηκεύονται στην περιφερειακή μνήμη: π.χ. σκληρός δίσκος. Από τη στιγμή δημιουργίας τους τα δεδομένα που περιέχουν διατηρούνται όσο είναι επιθυμητό: Αντίθετα, ένας πίνακας διατηρείται όσο εκτελείται ένα πρόγραμμα.
Αρχεία Τα αρχεία χωρίζονται σε δύο κατηγορίες: τα αρχεία κειμένου (text files) και τα δυαδικά αρχεία (binary files). Τα αρχεία κειμένου ονομάζονται και αρχεία σειριακής προσπέλασης, γιατί για να διαβάσουμε ή να γράψουμε σε ένα τέτοιο αρχείο πρέπει να ξεκινήσουμε από την αρχή του αρχείου (π.χ. για να διαβάσουμε τους χαρακτήρες της 50ης γραμμής ενός αρχείου κειμένου πρέπει να έχουμε διαβάσει με τη σειρά τους χαρακτήρες των προηγούμενων 49 γραμμών του αρχείου). Αντίθετα, τα δυαδικά αρχεία ονομάζονται και αρχεία τυχαίας προσπέλασης, γιατί μπορούμε να διαβάσουμε ή να γράψουμε κατευθείαν σε οποιοδήποτε σημείο του αρχείου επιθυμούμε (π.χ. για να διαβάσουμε τους χαρακτήρες της 50ης γραμμής ενός τέτοιου αρχείου δεν χρειάζεται να έχουμε διαβάσει με τη σειρά τους χαρακτήρες των προηγούμενων 49 γραμμών του αρχείου, αλλά μπορούμε να διαβάσουμε κατευθείαν τους χαρακτήρες της 50ης γραμμής).
Αρχεία Τα αρχεία κειμένου αποτελούνται από μία η περισσότερες γραμμές, οι οποίες περιέχουν χαρακτήρες. Κάθε γραμμή τελειώνει με τον ειδικό χαρακτήρα που χρησιμοποιεί το λειτουργικό σύστημα για να καθορίσει το τέλος της γραμμής. Ωστόσο, όταν αποθηκεύονται χαρακτήρες σε ένα αρχείο κειμένου είναι πιθανό να γίνει μετατροπή κάποιων χαρακτήρων: Π.χ. ο ASCII κωδικός του χαρακτήρα νέας γραμμής '\n' (Line Feed) είναι 10 και στα Windows κάθε τέτοιος χαρακτήρας μετατρέπεται στον χαρακτήρα τέλους γραμμής, που είναι ο συνδυασμός των χαρακτήρων '\r' (Carriage Return) και '\n' (Line Feed), CR/LF, με ASCII κωδικούς 13 και 10 αντίστοιχα. Αντίθετα, στα δυαδικά αρχεία τα περιεχόμενα του αρχείου δεν διαχωρίζονται σε γραμμές και δεν συμβαίνει καμία μετατροπή χαρακτήρων: Π.χ. ο χαρακτήρας νέας γραμμής '\n' αποθηκεύεται απευθείας και δεν μετατρέπεται σε τέλος γραμμής.
Αρχεία Στα αρχεία κειμένου μπορεί να προστεθεί ένας ειδικός χαρακτήρας που δηλώνει το τέλος του αρχείου: Π.χ. στο Unix ο χαρακτήρας που δηλώνει το τέλος του αρχείου κειμένου είναι ο Control-D (CTRL-D). Στα δυαδικά αρχεία δεν υπάρχει κάποιος αντίστοιχος χαρακτήρας για τη δήλωση του τέλους του αρχείου. Οι διαδικασίες εγγραφής και ανάγνωσης σε/από ένα δυαδικό αρχείο εκτελούνται πιο γρήγορα από ότι σε ένα αρχείο κειμένου.
Αρχεία Το μέγεθος των δυαδικών αρχείων είναι συνήθως μικρότερο από το μέγεθος των αρχείων κειμένου, γιατί στα δυαδικά αρχεία κάθε τύπος δεδομένων αποθηκεύεται με τον αντίστοιχο αριθμό bytes που απαιτούνται: Π.χ. το μέγεθος ενός αρχείου κειμένου που περιέχει τον αριθμό 47654 (47654 10 = 1011101000100110 2 ) θα είναι 5 bytes (αφού περιέχει 5 ψηφία), ενώ το μέγεθος ενός αντίστοιχου δυαδικού αρχείου θα είναι 2 bytes.
Παρατηρήσεις Ο κύριος λόγος για να επιλέξουμε να αποθηκεύσουμε δεδομένα σε ένα αρχείο κειμένου είναι γιατί τα περιεχόμενά τους εμφανίζονται σε κατανοητή μορφή από τους επεξεργαστές κειμένων. Αντίθετα, αν ανοίξετε ένα δυαδικό αρχείο με κάποιον επεξεργαστή κειμένου (π.χ. notepad) είναι πολύ πιθανό να εμφανίζονται κάποιοι παράξενοι χαρακτήρες και να μη μπορείτε να διαβάσετε τα περιεχόμενά του.
Χρήση Αρχείων Η χρήση των λογικών μονάδων εισόδου/εξόδου περιλαμβάνει τρία στάδια: Άνοιγμα ενός αρχείου (open): Αντιστοίχιση σε μια λογική μονάδα. Ονομασία ενός αρχείου. Ανάγνωση/Εγγραφή στη λογική μονάδα (read/write): Συσχέτιση με μια λογική μονάδα. Λίστα μεταβλητών. Κλείσιμο λογικής μονάδας (close): Συσχέτιση με μια λογική μονάδα.
Χρήση Αρχείων Η ταυτότητα ενός αρχείου καθορίζεται από: Τη διαδρομή του αρχείου στον σκληρό δίσκο (path). Το όνομα του αρχείου. Τον τύπο του αρχείου (που καθορίζεται από την επέκταση του αρχείου). π.χ. C:\folder\project1\results.txt Τα αρχεία προσδιορίζονται από τον χρήστη με την πλήρη τους ταυτότητα σαν αλφαριθμητικά δεδομένα. Κάθε αρχείο αποτελείται από πεδία: Το πεδίο είναι μια ακολουθία εκτυπώσιμων και μη χαρακτήρων. Το τελευταίο πεδίο κάθε αρχείου είναι το EOF (μη εκτυπώσιμο).
Χρήση Αρχείων Κατά το άνοιγμα ενός αρχείου (εντολή open), δεσμεύεται ένας χώρος (buffer) στη μνήμη RAM και δημιουργείται μια συσχέτιση με το αρχείο στο δίσκο. Ότι γράφουμε στο αρχείο, γράφεται πρώτα στον buffer. Τα δεδομένα γράφονται αυτόματα στο πραγματικό αρχείο όταν ο buffer γεμίσει, ή όταν κλείσουμε το ανοικτό αρχείο. Αν θέλουμε, μπορούμε να γράψουμε τα δεδομένα του buffer στο αρχείο σε οποιαδήποτε άλλη στιγμή(flush). Κατά το κλείσιμο του αρχείου (εντολή close) αποδεσμεύονται οι δεσμευμένοι πόροι (διαγράφεται ο buffer αφού προηγουμένως έχουν σωθεί τα περιεχόμενά του στο αρχείο). Με το τέλος του προγράμματος, όλα τα ανοικτά αρχεία κλείνουν αυτόματα, παρόλα αυτά καλό είναι να τα κλείνουμε μόνοι μας με την εντολή close όταν δεν τα χρειαζόμαστε άλλο.
Αρχεία Κειμένου Τα περιεχόμενα των αρχείων κειμένου είναι αναγνώσιμοι και εκτυπώσιμοι χαρακτήρες. Κάθε εγγραφή διαχωρίζεται από την επόμενη με τον χαρακτήρα νέας γραμμής "\n". Για το διάβασμα και το γράψιμο δεδομένων χρησιμοποιούνται οι ίδιες συναρτήσεις με τη διαλογική επεξεργασία.
Είδη Σειριακών Αρχείων Οριοθετημένα (με κενά, κόμμα κ.τ.λ.) π.χ. οριοθετημένα με κόμμα (csv: comma separated values) Σταθερού πλάτους (πρόβλημα αν υπάρχουν αλφαριθμητικά που περιέχουν κενά):
Ανάγνωση και Επεξεργασία Δεδομένων Πολλές φορές υπάρχει ανάγκη να επεξεργαστούμε πειραματικά δεδομένα, τα οποία περιλαμβάνουν αρκετές χιλιάδες τιμών. Ένας από τους συνήθης τύπους αρχείων που χρησιμοποιούνται για την αποθήκευση τέτοιων δεδομένων είναι τα αρχεία csv (comma separated values). Εάν ανοίξουμε με το σημειωματάριο (notepad) ένα τέτοιο αρχείο θα δούμε ότι η δομή του μοιάζει με αυτή που φαίνεται στην εικόνα. Κοιτώντας προσεκτικά την πρώτη γραμμή του αρχείου, παρατηρούμε ότι περιέχει πραγματικούς αριθμούς οι οποίοι διαχωρίζονται μεταξύ τους με ;. Το ίδιο ισχύει και για τις υπόλοιπες γραμμές. Με άλλα λόγια το αρχείο περιέχει 5 στήλες δεδομένων. Το σύμβολο ; διαχωρίζει τους αριθμούς μεταξύ τους, γι αυτό και ονομάζεται separator. Το ρόλο του separator μπορούν να παίξουν και άλλα σύμβολα π.χ. TAB,, : κ.λ.π. Τα αρχεία *.csv διαβάζονται από όλα τα προγράμματα υπολογιστικών φύλλων (π.χ. Excel, Calc(Libre Office), Gnumeric, Origin Grapher κ.λ.π.)
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό. Οι όροι χρήσης των έργων τρίτων επεξηγούνται στη διαφάνεια «Επεξήγηση όρων χρήσης έργων τρίτων». Τα έργα για τα οποία έχει ζητηθεί άδεια αναφέρονται στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/από-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.
Επεξήγηση όρων χρήσης έργων τρίτων διαθέσιμο με άδεια CC-BY διαθέσιμο με άδεια CC-BY-SA διαθέσιμο με άδεια CC-BY-ND διαθέσιμο με άδεια CC-BY-NC διαθέσιμο με άδεια CC-BY-NC-SA διαθέσιμο με άδεια CC-BY-NC-ND διαθέσιμο με άδεια CC0 Public Domain διαθέσιμο ως κοινό κτήμα χωρίς σήμανση Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου άδεια από το δημιουργό. Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με απλή αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η δημιουργία παραγώγων του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου και η δημιουργία παραγώγων του. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Συνήθως δεν επιτρέπεται η επαναχρησιμοποίηση του έργου.
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.