Προγραμματισμός με τη Free Pascal - Μέρος 7ο
From Ubuntucy Wiki
Συγγραφή: Χατζηκυριάκου Γιώργος
Αρχεία κειμένου
Η δυνατότητα να αποθηκεύσεις σε ένα αρχείο δεδομένα ή να ανοίξεις ένα αρχείο κειμένου και να διαβάσεις τα περιεχόμενα του μπορεί να μας βοηθήσει πάρα πολύ στην ανάπτυξη προγραμμάτων. Εδώ θα ασχοληθούμε με την εγράφη και την ανάγνωση αρχείων κειμένου ή σειριακών αρχείων (sequential files).
Εγγραφή σε αρχείο κειμένου
Πρόγραμμα 1
Program Lesson7_Program1;
Var FName, Txt : String;
UserFile : Text;
Begin
Write('Dose onoma arxeiou (px./home/george/test.txt) :');
readln(FName);
Assign(UserFile, FName);
Rewrite(UserFile);
Writeln('Grapse to kimeno : ');
Readln(Txt);
Writeln(UserFile,Txt);
Close(UserFile);
End.
Επεξήγηση Προγράμματος
UserFile : Text
Δηλώνουμε ότι το αρχείο θα περιέχει κείμενο(text).
Assign(UserFile, FName);
Αντιστοίχηση του αρχείου. Περνούν τα ορίσματα τύπος αρχείου και όνομα αρχείου(πλήρης διαδρομή). Δηλαδή το αρχείο FName θα είναι τύπου UserFile δηλαδή κείμενο.
Rewrite(UserFile);
Άνοιγμα του αρχείου FName για εγγραφή (αν έχει ήδη κείμενο το αρχείο σβήνετε και γράφει το νέο).
Κάνοντας χρήση του Append(UserFile); προσθέτουμε το κείμενο στο τέλος του αρχείου (εφόσον υπάρχει το αρχείο !!!) κρατώντας το προηγούμενο κείμενο.
Writeln(UserFile,Txt);
Εγγραφή κειμένου στο αρχείο (όχι στην οθόνη).
Close(UserFile);
Κλείσιμο του αρχείου FName (απαιτείτε).
Ανάγνωση από αρχείο κειμένου
Πρόγραμμα 2
Program Lesson7_Program2;
Var UserFile : Text;
FileName, TFile : String;
Begin
Write('Dose onoma arxeiou (px./home/george/test.txt) :');
readln(FileName);
Assign(UserFile, FileName);
Reset(UserFile);
Repeat
Readln(UserFile,TFile);
Writeln(TFile);
Until Eof(UserFile);
Close(UserFile);
End.
Επεξήγηση Προγράμματος
Reset(UserFile);
Άνοιγμα του αρχείου FileName για ανάγνωση.
… Repeat Readln(UserFile,TFile); Writeln(TFile); Until Eof(UserFile); …
Διαβάζει από το αρχείο Readln(UserFile,TFile); Και να παρουσιάζει στην οθόνη Writeln(TFile); μέχρι να φτάσει στο τέλος του αρχείου Until Eof(UserFile);. (Eof – End of file)
Close(UserFile);
Κλείσιμο του αρχείου FileName (απαιτείτε).
Παρατηρήσεις
Η ανάγνωση του αρχείου γίνετε γραμμή-γραμμή μέχρι το τέλος του.
Διαγραφή Αρχείου (Προσοχή - Κίνδυνος !!!)
Πρόγραμμα 3
Program Lesson7_Program3;
Var UFile : Text;
FileName : String;
Begin
Write('Dose onoma arxeiou (px./home/george/test.txt) :');
readln(FileName);
Assign(UFile,FileName);
Erase(UFile);
End.
Επεξήγηση Προγράμματος
Erase(UFile);
Άνοιγμα του αρχείου FileName για διαγραφή.
Άσκηση
Να γράψετε μια διαδικασία (procedure) στην pascal που θα ζητά τις πληροφορίες: όνομα, επίθετο, e-mail, τηλέφωνο και να τις αποθηκεύει σε αρχείο κειμένου(Append). Στη συνέχεια θα γίνεται ερώτηση αν θέλουμε να συνεχίσουμε να προσθέτουμε δεδομένα στο αρχείο. Αν η απάντηση είναι θετική θα ξανακαλείται η διαδικασία, ενώ αν είναι αρνητική θα τερματίζεται το πρόγραμμα. Τα δεδομένα να αποθηκεύονται στο αρχείο στην εξής μορφή: Onoma : Γιώργος Epitheto : Χ. e-mail : ghadjikyriacou@yahoo.com Tilefono : 99123456 -----------------------------------------------

