[eeei.gr Logo]
Επικοινωνία
Ταυτότητα
Μαθήματα Internet | Μαθήματα Προγραμματισμού | Net Business | Τα νέα του Internet | Ο Κόσμος του Αύριο

File Handles - Λήψη δεδομένων από αρχεία κειμένου (text files) και επεξεργασία τους χωρίς όμως να πειράξουμε το αρχικό αρχείο.

Πριν ξεκινήσουμε δημιουργούμε φυσικά ένα αρχείο κειμένου. Στο παράδειγμά μας το αρχείο αυτό είναι το data.txt και το περιεχόμενό του είναι το ακόλουθο:

This is a

Basic PERL Framework

------------------

Example 1

by

Barry B. Floyd

------------------

Translated in the

Greek language

by

Giorgos Epitidios

Στο παρόν παράδειγμα θέλουμε να μετατρέψουμε αυτό το αρχείο από απλό κείμενο σε HTML:

#!/usr/bin/perl -w

use strict;

Κατά τα γνωστά

my $file ='data.txt';

Αν και θα μπορούσαμε να κάνουμε την Perl να ανοίγει απευθείας το αρχείο εμείς προτιμούμε να βάλουμε το όνομα του αρχείου μέσα σε μια scalar variable (μεταβλητή). Έτσι θα μας είναι ευκολότερο να κάνουμε μελλοντικά επεκτάσεις της εφαρμογής μας (π.χ. να ανοίγουμε πολλά αρχεία το ένα μετά το άλλο).

open (INFO, "<$file");

Εδώ λέμε στην Perl να ανοίξει αυτό το αρχείο. Η ακριβής μετάφραση της παραπάνω δήλωσης είναι:

  1. ’νοιξε (open) μέσα σου έναν ανεξάρτητο χώρο προσωρινής αποθήκευσης και διαχείρισης αρχείου (filehandle)
  2. Δώσε του το όνομα INFO. Το όνομα είναι απαραίτητο γιατί μας επιτρέπει να έχουμε ανοικτά περισσότερα από ένα filehandles το καθένα από τα οποία θα έχει το δικό του όνομα. Φυσικά μπορούμε να επιλέξουμε όποιο όνομα προτιμούμε εμείς. (Σε αρκετά βιβλία θα συναντήσετε παραδείγματα όπου το filehandle βαφτίζεται απλώς FILE. Αυτό όμως αποτελεί κακή πρακτική γιατί έτσι πολλοί αναγνώστες νομίζουν ότι πάντοτε έτσι πρέπει να ονομάζονται τα filehandles, κάτι που δεν είναι αλήθεια)
  3. Μέσα στο filehandle βάλε τα περιεχόμενα του αρχείου $file. Το αρχείο ανοίγει μόνο για ανάγνωση και τα περιεχόμενά του δεν μπορούν να τροποποιηθούν (αυτό δηλώνεται με το σύμβολο < μπροστά από το $file). Το άνοιγμα μόνο για ανάγνωση αποτελεί την default επιλογή της Perl. Το ίδιο αποτέλεσμα λοιπόν θα είχαμε και αν η σύνταξή μας ήταν: open (INFO, "$file");

my @lines = <INFO>;

Τοποθετούμε τα περιεχόμενα του αρχείου μέσα σε μια array (την @lines). Κάθε σειρά του αρχείου θα αποτελεί και ένα διαφορετικό στοιχείο της array.

print "<HTML><HEAD><TITLE>Text to HTML example</TITLE></HEAD>\n";

print "<BODY>\n";

Προσθέτουμε κώδικα HTML στην αρχή του αρχείου.

foreach my $line (@lines)

{

print "\n <P> $line </P>";

}

Το $line συμβολίζει ένα στοιχείο της @lines. Εδώ λοιπόν λέμε στην Perl ότι για κάθε στοιχείο ($line) της @lines θα πρέπει να το τυπώσει στην οθόνη προσθέτοντάς του ένα σημάδι παραγράφου στην αρχή και ένα σημάδι τέλους παραγράφου στο τέλος.

print "\n </BODY></HTML>\n";

Η Perl τυπώνει τον κώδικα τέλους της σελίδας HTML.

Το συνολικό τυπωμένο αποτέλεσμα που μας παράγει η Perl από το παραπάνω πρόγραμμα είναι το ακόλουθο:

<HTML><HEAD><TITLE>Text to HTML example</TITLE></HEAD>

<BODY>

<P> This is a

</P>

<P> Basic PERL Framework

</P>

<P> ------------------

</P>

<P> Example 1

</P>

<P> by

</P>

<P> Barry B. Floyd

</P>

<P> ------------------

</P>

<P> Translated in the

</P>

<P> Greek language

</P>

<P> by

</P>

<P> Giorgos Epitidios

</P>

<P>

</P>

</BODY></HTML>

(Το ξέρω ότι το </P> δεν χρειάζεται για να οριστεί μια παράγραφος και το παράδειγμα είναι πράγματι απλοϊκό. Πιο σύνθετα παραδείγματα θα διαβάσετε στη συνέχεια.)

Ολόκληρος ο κώδικας του παραπάνω προγράμματος είναι ο:

#!/usr/bin/perl -w

use strict;

my $file ='data.txt';

open (INFO, "<$file");

my @lines = <INFO>;

print "<HTML><HEAD><TITLE>Text to HTML example</TITLE></HEAD>\n";

print "<BODY>\n";

foreach my $line (@lines)

{

print "\n <P> $line </P>";

}

print "\n </BODY></HTML>\n";


Τρέχουσα Ενότητα: Perl


 

Φιλικά - συνεργαζόμενα sites: Left Handed Products


© Eeei.gr 2009