Σειριακά αρχεία

Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr

Εισαγωγή στα αρχεία

Βασικός χειρισμός

Παράδειγμα:

program testfile;
var
   f : file of integer;
   i : integer;

begin
     assign(f, 'INT.DAT');

     rewrite(f);
     for i := 1 to 5 do
         write(f, i);
     close(f);

     reset(f);
     while not eof(f) do
     begin
         read(f, i);
         writeln(i)
     end;
     close(f);
end.

Μετά την εκτέλεση του παραπάνω προγράμματος το αρχείο INT.DAT θα περιέχει τις παρακάτω τιμές:

01 00 02 00 03 00 04 00 05 00

Αρχεία κειμένου

Παράδειγμα:

program testfile;
var
   f : text;
   i : integer;

begin
     assign(f, 'INT.TXT');

     rewrite(f);
     for i := 1 to 5 do
         writeln(f, i);
     close(f);

     reset(f);
     while not eof(f) do
     begin
         readln(f, i);
         writeln(i)
     end;
     close(f);
end.

Μετά την εκτέλεση του παραπάνω προγράμματος το αρχείο INT.TXT θα περιέχει το παρακάτω κείμενο:

1
2
3
4
5

Παράδειγμα

Το παρακάτω παράδειγμα ζητάει από το χρήστη να προσδιορίσει δύο ονόματα αρχείων Α, Β και αντιγράφει το αρχείο Α στο αρχείο Β.
program copyfile;
var
   infname, outfname : packed array [0..8] of char;
   fin, fout : file of char;
   c : char;

begin
     write('Give input file:');
     readln(infname);
     write('Give output file:');
     readln(outfname);
     assign(fin, infname);
     assign(fout, outfname);
     rewrite(fout);
     reset(fin);
     rewrite(fout);
     while not eof(fin) do
     begin
         read(fin, c);
         write(fout, c)
     end;
     close(fin);
     close(fout);
end.

Βιβλιογραφία

Ασκήσεις

Pascal 10

  1. Να επεκταθεί το πρόγραμμα της αριθμομηχανής (Pascal 09) έτσι ώστε να καταγράφει σε αρχείο κειμένου τις πράξεις και τα αποτελέσματα.
  2. Ως παραδοτέο της άσκησης να αποσταλεί (με τον κωδικό PASCAL 20) και ένα αντίγραφο του αρχείου αυτού που να περιέχει δείγματα όλων των πράξεων.

    Παράδειγμα του αρχείου:

    (5 + 3i) + (1 + 2i) = (6 + 5i)
    (5 + 3i) - (1 + 2i) = (4 + 1i)
    (1 + 1i) * (1.5 + 2i) = (-0.5 + 3.5i)
    ...
    
Περισσότερες λεπτομέρειες για τις ασκήσεις