Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Εφαρμογές Υπολογιστών"— Μεταγράφημα παρουσίασης:

1 Εφαρμογές Υπολογιστών
Γεωπονικό Πανεπιστήμιο Αθηνών Τμήμα Αγροτικής Οικονομίας & Ανάπτυξης Εργαστήριο Πληροφορικής Προγραμματισμός & Εφαρμογές Υπολογιστών Κωδικός Μαθήματος: Κωδικός Διαφανειών: MKT130 Καθηγητής Νίκος Λορέντζος

2 8. Διαχείριση Αρχείων Καθηγητής Νίκος Λορέντζος
Γεωπονικό Πανεπιστήμιο Αθηνών Τμήμα Αγροτικής Οικονομίας & Ανάπτυξης Εργαστήριο Πληροφορικής 8. Διαχείριση Αρχείων Καθηγητής Νίκος Λορέντζος

3 Πρόγραμμα [25] Θέλουμε να δημιουργήσουμε ένα αρχείο κειμένου, το parag.txt, που να περιέχει τα παρακάτω στοιχεία δενδροκαλλιεργητών: - Αριθμός Μητρώου, - Επώνυμο, - Όνομα, - Είδος προϊόντος που πούλησε (ΠΟ = Πορτοκάλια, ΜΑ= Μανταρίνια, ΛΕ = Λεμόνια), - Ποσότητα προϊόντος που πούλησε, - Τιμή κιλού. Να γραφεί πρόγραμμα που διαβάζει τα παραπάνω στοιχεία κάθε δενδροκαλλιεργητή και τα καταχωρίζει στο αρχείο. Το πρόγραμμα λειτουργεί ως εξής: - Όταν για κάποιον δενδροκαλλιεργητή πληκτρολογείται Αριθμός Μητρώου (ΑΜ) μεγαλύτερος του 0, τότε διαβάζει και τα υπόλοιπα στοιχεία του και τα καταχωρίζει στο αρχείο. - Αν δοθεί ΑΜ ≤ 0 τότε η εισαγωγή δεδομένων τερματίζεται και το πρόγραμμα εμφανίζει στην οθόνη το μήνυμα ΟΛΟΚΛΗΡΩΣΗ ΕΙΣΑΓΩΓΗΣ ΔΕΔΟΜΕΝΩΝ.

4 Προσοχη: Τα κόμματα (,) είναι σημαντικά!!! Επίδειξη προγράμματος
Αρχείο Κειμένου Αρχείο parag.txt 1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, 1000, , ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, 4000, , ΔΗΜΗΤΡΙΟΥ, ΔΗΜΗΤΡΙΟΣ, ΛΕ, 6000, , ΓΕΩΡΓΙΟΥ, ΓΕΩΡΓΙΟΣ, ΜΑ, 16000, , ΘΕΟΔΩΡΟΥ, ΘΕΟΔΩΡΟΣ, ΠΟ, 10000, , ΙΩΑΝΝΟΥ, ΙΩΑΝΝΗΣ, ΜΑ, 6000, , ΝΙΚΟΛΑΟΥ, ΝΙΚΟΛΑΟΣ, ΠΟ, 7000, , ΠΕΤΡΙΔΗΣ, ΠΕΤΡΟΣ, ΛΕ, 16000, 0.50 Προσοχη: Τα κόμματα (,) είναι σημαντικά!!! Επίδειξη προγράμματος

5 Εντολές για Αρχείο Εξόδου
1. Open 2. Print 3. Close

6 1. Εντολή Open Συντακτικό Λειτουργικότητα
Open "parag.txt" For Output As #1 ' ή As 1 Λειτουργικότητα 1. Αναζητείται χώρος στο μονοπάτι που ορίσαμε, για τη δημιουργία αρχείου (στο συγκεκριμένο παράδειγμα, για αρχείο με όνομα paragr.txt). 2. Το αρχείο αντιστοιχίζεται με τον αριθμό που ορίσαμε (στο παράδειγμα, αντιστοιχίζεται με τον αριθμό 1). 3. Τίθεται ένας δείκτης στη αρχή του αρχείου. parag.txt (1)

7 2. Εντολή Print Εντολή εκτύπωσης στο parag.txt 1 (parag.txt) 1,
am = epon = onoma = eidos = posot = timi = 1 ΑΒΡΑΜΙΔΗΣ ΑΒΡΑΑΜ ΠΟ 1000 1.00 Print #1 , am & ", " , epon & ", " , onoma & ", " , eidos & ", " , posot & ", " , timi 1 (parag.txt) 1, ΑΒΡΑΑΜ, ΑΒΡΑΜΙΔΗΣ, 1000, ΠΟ, 1, ΑΒΡΑΑΜ, ΑΒΡΑΜΙΔΗΣ, 1000, ΠΟ, 1.00 1, ΑΒΡΑΑΜ, ΑΒΡΑΜΙΔΗΣ, ΠΟ, 1, 1, ΑΒΡΑΑΜ, ΑΒΡΑΜΙΔΗΣ, 1, ΑΒΡΑΜΙΔΗΣ, 7

8 2. Εντολή Print Αρχείο parag.txt 1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, 1000, 1.00
1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, , 2, ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, , 3, ΔΗΜΗΤΡΙΟΥ, ΔΗΜΗΤΡΙΟΣ, ΛΕ, , 4, ΓΕΩΡΓΙΟΥ, ΓΕΩΡΓΙΟΣ, ΜΑ, , 5, ΘΕΟΔΩΡΟΥ, ΘΕΟΔΩΡΟΣ, ΠΟ, , 6, ΙΩΑΝΝΟΥ, ΙΩΑΝΝΗΣ, ΜΑ, , 7, ΝΙΚΟΛΑΟΥ, ΝΙΚΟΛΑΟΣ, ΠΟ, , 1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, , 2, ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, , 3, ΔΗΜΗΤΡΙΟΥ, ΔΗΜΗΤΡΙΟΣ, ΛΕ, , 4, ΓΕΩΡΓΙΟΥ, ΓΕΩΡΓΙΟΣ, ΜΑ, , 5, ΘΕΟΔΩΡΟΥ, ΘΕΟΔΩΡΟΣ, ΠΟ, , 6, ΙΩΑΝΝΟΥ, ΙΩΑΝΝΗΣ, ΜΑ, , 7, ΝΙΚΟΛΑΟΥ, ΝΙΚΟΛΑΟΣ, ΠΟ, , 8, ΠΕΤΡΙΔΗΣ, ΠΕΤΡΟΣ, ΛΕ, , 1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, , 2, ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, , 3, ΔΗΜΗΤΡΙΟΥ, ΔΗΜΗΤΡΙΟΣ, ΛΕ, , 4, ΓΕΩΡΓΙΟΥ, ΓΕΩΡΓΙΟΣ, ΜΑ, , 5, ΘΕΟΔΩΡΟΥ, ΘΕΟΔΩΡΟΣ, ΠΟ, , 6, ΙΩΑΝΝΟΥ, ΙΩΑΝΝΗΣ, ΜΑ, , 1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, , 2, ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, , 3, ΔΗΜΗΤΡΙΟΥ, ΔΗΜΗΤΡΙΟΣ, ΛΕ, , 4, ΓΕΩΡΓΙΟΥ, ΓΕΩΡΓΙΟΣ, ΜΑ, , 1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, , 1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, , 2, ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, , 1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, , 2, ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, , 3, ΔΗΜΗΤΡΙΟΥ, ΔΗΜΗΤΡΙΟΣ, ΛΕ, , 1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, , 2, ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, , 3, ΔΗΜΗΤΡΙΟΥ, ΔΗΜΗΤΡΙΟΣ, ΛΕ, , 4, ΓΕΩΡΓΙΟΥ, ΓΕΩΡΓΙΟΣ, ΜΑ, , 5, ΘΕΟΔΩΡΟΥ, ΘΕΟΔΩΡΟΣ, ΠΟ, ,

9 3. Εντολή Close Συντακτικό Λειτουργικότητα Close #1 ' ή Close 1 (1)
Αποδεσμεύει το αρχείο στο οποίο αντιστοιχίσαμε τον αριθμό (στο παράδειγμα το αρχείο που αντιστοιχεί στον αριθμό 1). (1) 1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, , 2, ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, , 3, ΔΗΜΗΤΡΙΟΥ, ΔΗΜΗΤΡΙΟΣ, ΛΕ, , 4, ΓΕΩΡΓΙΟΥ, ΓΕΩΡΓΙΟΣ, ΜΑ, , 5, ΘΕΟΔΩΡΟΥ, ΘΕΟΔΩΡΟΣ, ΠΟ, , 6, ΙΩΑΝΝΟΥ, ΙΩΑΝΝΗΣ, ΜΑ, , 7, ΝΙΚΟΛΑΟΥ, ΝΙΚΟΛΑΟΣ, ΠΟ, , 8, ΠΕΤΡΙΔΗΣ, ΠΕΤΡΟΣ, ΛΕ, , Αρχείο parag.txt

10 Εισαγωγή Δεδομένων [25] Option Explicit Dim am As Integer
Dim epon As String Dim onoma As String Dim eidos As String Dim posot As Single Dim timi As Single (συνεχίζει)

11 Private Sub Command1_Click() ' 1. Εισαγωγή Δεδομένων
Open "parag.txt" For Output As #1 am = InputBox("ΔΩΣΕ ΑΡΙΘΜΟ ΜΗΤΡΩΟΥ") Do While am > 0 epon = InputBox("ΔΩΣΕ ΕΠΩΝΥΜΟ") onoma = InputBox("ΔΩΣΕ ΟΝΟΜΑ") eidos = InputBox("ΔΩΣΕ ΕΙΔΟΣ") posot = InputBox("ΔΩΣΕ ΠΟΣΟΤΗΤΑ") timi = InputBox("ΔΩΣΕ ΤΙΜΗ") Print #1, am & ", ", Print #1, epon & ", ", Print #1, onoma & ", ", Print #1, eidos & ", ", Print #1, posot & ", ", Print #1, timi Loop (συνεχίζει)

12 Close #1 Print " ΟΛΟΚΛΗΡΩΣΗ ΕΙΣΑΓΩΓΗΣ ΔΕΔΟΜΕΝΩΝ" End Sub (τέλος)

13 Πρόγραμμα [22] Έχομε ένα αρχείο, το parag.txt, το οποίο περιέχει τα εξής στοιχεία δενδροκαλλιεργητών: - Αριθμός Μητρώου, - Επώνυμο, - Όνομα, - Είδος προϊόντος που πούλησε (ΠΟ = Πορτοκάλια, ΜΑ = Μανταρίνια, ΛΕ = Λεμόνια), - Ποσότητα προϊόντος που πούλησε, - Τιμή μονάδας πώλησης. Να γραφεί πρόγραμμα το οποίο: 1. Για κάθε δενδροκαλλιεργητή, (i) διαβάζει τα παραπάνω στοιχεία, από το parag.txt, (ii) υπολογίζει το ποσόν που εισέπραξε από την πώληση του προϊόντος του, (iii) εκτυπώνει σε ένα αρχείο εξόδου τον Αριθμό Μητρώου, Όνομα και Επώνυμό του, καθώς και το ποσόν που εισέπραξε από την πώληση του προϊόντος του. 2. Υπολογίζει και εμφανίζει στη οθόνη, (i) το συνολικό ποσόν που εισέπραξαν όλοι οι δενδροκαλλιεργητές, (ii) το πλήθος των δενδροκαλλιεργητών, (iii) το μέσο ποσόν που εισέπραξε κάθε δενδροκαλλιεργητής.

14 Επίδειξη προγράμματος
Αρχεία [22] 1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, , 2, ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, , 3, ΔΗΜΗΤΡΙΟΥ, ΔΗΜΗΤΡΙΟΣ, ΛΕ, , 4, ΓΕΩΡΓΙΟΥ, ΓΕΩΡΓΙΟΣ, ΜΑ, , 5, ΘΕΟΔΩΡΟΥ, ΘΕΟΔΩΡΟΣ, ΠΟ, , 6, ΙΩΑΝΝΟΥ, ΙΩΑΝΝΗΣ, ΜΑ, , 7, ΝΙΚΟΛΑΟΥ, ΝΙΚΟΛΑΟΣ, ΠΟ, , 8, ΠΕΤΡΙΔΗΣ, ΠΕΤΡΟΣ, ΛΕ, , Περιεχόμενο Αρχείου Εισόδου (parag.txt) 1, ΑΒΡΑΑΜ, ΑΒΡΑΜΙΔΗΣ, 1000 2, ΒΑΣΙΛΕΙΟΣ, ΒΑΣΙΛΕΙΟΥ, 2000 3, ΔΗΜΗΤΡΙΟΣ, ΔΗΜΗΤΡΙΟΥ, 3000 4, ΓΕΩΡΓΙΟΣ, ΓΕΩΡΓΙΟΥ, 4000 5, ΘΕΟΔΩΡΟΣ, ΘΕΟΔΩΡΟΥ, 5000 6, ΙΩΑΝΝΗΣ, ΙΩΑΝΝΟΥ, 6000 7, ΝΙΚΟΛΑΟΣ, ΝΙΚΟΛΑΟΥ, 7000 8, ΠΕΤΡΟΣ, ΠΕΤΡΙΔΗΣ, 8000 Αναμενόμενο Περιεχόμενο Αρχείου Εξόδου (eispr.txt) Επίδειξη προγράμματος

15 Εντολές για Αρχείο Εισόδου
1. Open 2. Input 3. Συνάρτηση EOF 4. Close

16 1. Εντολή Open Συντακτικό Λειτουργικότητα
Open "parag.txt" For Input As # ' ή As 1 Λειτουργικότητα 1. Αναζητείται το αρχείο κειμένου στο μονοπάτι που ορίσαμε (στο συγκεκριμένο παράδειγμα, αναζητείται το αρχείο με όνομα parag.txt).

17 1. Εντολή Open Συντακτικό Λειτουργικότητα
Open "parag.txt" For Input As #1 ' ή As 1 Λειτουργικότητα 2α. Αν δεν βρεθεί το αρχείο τότε διακόπτεται η εκτέλεση του προγράμματος, με ένα μήνυμα λάθους. 2β. Αν το αρχείο βρεθεί τότε (i) το αρχείο αντιστοιχίζεται με τον αριθμό που ορίσαμε (στο παράδειγμα, αντιστοιχίζεται με τον αριθμό 1), (ii) τίθεται ένας δείκτης στη αρχή του αρχείου. parag.txt (1) 1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, , 2, ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, , 3, ΔΗΜΗΤΡΙΟΥ, ΔΗΜΗΤΡΙΟΣ, ΛΕ, , 4, ΓΕΩΡΓΙΟΥ, ΓΕΩΡΓΙΟΣ, ΜΑ, , 5, ΘΕΟΔΩΡΟΥ, ΘΕΟΔΩΡΟΣ, ΠΟ, , 6, ΙΩΑΝΝΟΥ, ΙΩΑΝΝΗΣ, ΜΑ, , 7, ΝΙΚΟΛΑΟΥ, ΝΙΚΟΛΑΟΣ, ΠΟ, , 8, ΠΕΤΡΙΔΗΣ, ΠΕΤΡΟΣ, ΛΕ, ,

18 2. Εντολή Input Συντακτικό Λειτουργικότητα
Input #1, am, epon, onoma, eidos, posot, timi Λειτουργικότητα Διαβάζει τις τιμές από το αρχείο και τις εκχωρεί στις μεταβλητές. (1) 1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, , 2, ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, , 3, ΔΗΜΗΤΡΙΟΥ, ΔΗΜΗΤΡΙΟΣ, ΛΕ, , 4, ΓΕΩΡΓΙΟΥ, ΓΕΩΡΓΙΟΣ, ΜΑ, , 5, ΘΕΟΔΩΡΟΥ, ΘΕΟΔΩΡΟΣ, ΠΟ, , 6, ΙΩΑΝΝΟΥ, ΙΩΑΝΝΗΣ, ΜΑ, , 7, ΝΙΚΟΛΑΟΥ, ΝΙΚΟΛΑΟΣ, ΠΟ, , 8, ΠΕΤΡΙΔΗΣ, ΠΕΤΡΟΣ, ΛΕ, , Αρχείο parag.txt am = epon = onoma = eidos = posot = timi = 1 ΑΒΡΑΜΙΔΗΣ ΑΒΡΑΑΜ ΠΟ 1000 1.00

19 3. Συνάρτηση EOF End Of File (Τέλος Αρχείου) (1) Αρχείο parag.txt
1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, , 2, ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, , 3, ΔΗΜΗΤΡΙΟΥ, ΔΗΜΗΤΡΙΟΣ, ΛΕ, , 4, ΓΕΩΡΓΙΟΥ, ΓΕΩΡΓΙΟΣ, ΜΑ, , 5, ΘΕΟΔΩΡΟΥ, ΘΕΟΔΩΡΟΣ, ΠΟ, , 6, ΙΩΑΝΝΟΥ, ΙΩΑΝΝΗΣ, ΜΑ, , 7, ΝΙΚΟΛΑΟΥ, ΝΙΚΟΛΑΟΣ, ΠΟ, , 8, ΠΕΤΡΙΔΗΣ, ΠΕΤΡΟΣ, ΛΕ, , EOF(1) = True | Τέλος Αρχείου False | Όχι Τέλος Αρχείου 19

20 3. Συνάρτηση EOF End Of File (Τέλος Αρχείου) (1) Αρχείο parag.txt
1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, , 2, ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, , 3, ΔΗΜΗΤΡΙΟΥ, ΔΗΜΗΤΡΙΟΣ, ΛΕ, , 4, ΓΕΩΡΓΙΟΥ, ΓΕΩΡΓΙΟΣ, ΜΑ, , 5, ΘΕΟΔΩΡΟΥ, ΘΕΟΔΩΡΟΣ, ΠΟ, , 6, ΙΩΑΝΝΟΥ, ΙΩΑΝΝΗΣ, ΜΑ, , 7, ΝΙΚΟΛΑΟΥ, ΝΙΚΟΛΑΟΣ, ΠΟ, , 8, ΠΕΤΡΙΔΗΣ, ΠΕΤΡΟΣ, ΛΕ, , EOF(1) = True | Τέλος Αρχείου False | Όχι Τέλος Αρχείου Not (EOF(1)) = True | Όχι Τέλος Αρχείου False | Τέλος Αρχείου 20

21 4. Εντολή Close Συντακτικό Λειτουργικότητα Close #1 ' ή Close 1
Η ίδια με εκείνη του αρχείου εισόδου

22 Εντολή Print Εντολή εκτύπωσης στο eispr.txt 2 (eispr.txt) 1, ΑΒΡΑΑΜ,
am = epon = onoma = eidos = posot = timi = eispraxi = 1 ΑΒΡΑΜΙΔΗΣ ΑΒΡΑΑΜ ΠΟ 1000 1.00 Print #2 , am & ", " , onoma & ", " , epon & ", " , eispraxi 2 (eispr.txt) 1, ΑΒΡΑΑΜ, ΑΒΡΑΜΙΔΗΣ, 1000 1, 1, ΑΒΡΑΑΜ, ΑΒΡΑΜΙΔΗΣ, 1, ΑΒΡΑΑΜ, 22

23 Διαχείριση Αρχείων [22] Option Explicit Dim am As Integer Dim epon As String Dim onoma As String Dim eidos As String Dim posot As Single Dim timi As Single Dim eispraxi As Single Dim synolo As Single Dim plithos As Integer (συνεχίζει)

24 Διαχείριση Αρχείων [22] Private Sub Command1_Click() ' 1. Διαχείριση Αρχείων Open "parag.txt" For Input As #1 ' ή As 1 Open "eispr.txt" For Output As #2 synolo = 0 plithos = 0 Do While Not (EOF(1)) Input #1, am, epon, onoma, eidos, posot, timi plithos = plithos + 1 eispraxi = posot * timi synolo = synolo + eispraxi Print #2, am & ",", onoma & ",", epon & ",", eispraxi Loop Close #1 Close #2 (συνεχίζει)

25 Διαχείριση Αρχείων [22] If plithos > 0 Then ' 2. Τελικές Εκτυπώσεις Print "ΣΥΝΟΛΟ: ", synolo Print "ΠΛΗΘΟΣ: ", plithos Print "ΜΕΣΟΣ ΟΡΟΣ: ", synolo / plithos Else Print "ΤΟ ΑΡΧΕΙΟ ΕΙΣΟΔΟΥ ΕΙΝΑΙ ΑΔΕΙΟ." End If End Sub (τέλος)

26 Πρόγραμμα [23] Να γραφεί πρόγραμμα το οποίο περιορίζει τη λειτουργικότητα του προηγούμενου προγράμματος στους πορτοκαλοπαραγωγούς.

27 Αρχεία Περιεχόμενο Αρχείου Εισόδου (parag.txt)
1, ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, 1000, , ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, 4000, , ΔΗΜΗΤΡΙΟΥ, ΔΗΜΗΤΡΙΟΣ, ΛΕ, 6000, , ΓΕΩΡΓΙΟΥ, ΓΕΩΡΓΙΟΣ, ΜΑ, 16000, , ΘΕΟΔΩΡΟΥ, ΘΕΟΔΩΡΟΣ, ΠΟ, 10000, , ΙΩΑΝΝΟΥ, ΙΩΑΝΝΗΣ, ΜΑ, 6000, , ΝΙΚΟΛΑΟΥ, ΝΙΚΟΛΑΟΣ, ΠΟ, 7000, , ΠΕΤΡΙΔΗΣ, ΠΕΤΡΟΣ, ΛΕ, 16000, 0.50 Αναμενόμενο Περιεχόμενο Αρχείου Εξόδου (eispr.txt) 1, ΑΒΡΑΑΜ, ΑΒΡΑΜΙΔΗΣ, 1000 2, ΒΑΣΙΛΕΙΟΣ, ΒΑΣΙΛΕΙΟΥ, 2000 5, ΘΕΟΔΩΡΟΣ, ΘΕΟΔΩΡΟΥ, 5000 7, ΝΙΚΟΛΑΟΣ, ΝΙΚΟΛΑΟΥ, 7000

28 Διαχείριση Αρχείων [23] Private Sub Command1_Click() ' 1. Διαχείριση Αρχείων Do While Not (EOF(1)) Input #1, am, epon, onoma, eidos, posot, timi plithos = plithos + 1 eispraxi = posot * timi synolo = synolo + eispraxi Print #2, am & ",", onoma & ",", epon & ",", eispraxi Loop Do While Not (EOF(1)) Input #1, am, epon, onoma, eidos, posot, timi If eidos = "ΠΟ" Then plithos = plithos + 1 eispraxi = posot * timi synolo = synolo + eispraxi Print #2, am & ",", onoma & ",", epon & ",", eispraxi End If Loop

29 Διαχείριση Αρχείων [23] … If plithos > 0 Then
Print "ΣΥΝΟΛΟ: " & synolo Print "ΠΛΗΘΟΣ: " & plithos Print "ΜΕΣΟΣ ΟΡΟΣ: " & synolo / plithos Else Print "ΤΟ ΑΡΧΕΙΟ ΕΙΣΟΔΟΥ ΕΙΝΑΙ ΑΔΕΙΟ." End If If plithos > 0 Then Print "ΣΥΝΟΛΟ: " & synolo Print "ΠΛΗΘΟΣ: " & plithos Print "ΜΕΣΟΣ ΟΡΟΣ: " & synolo / plithos Else Print " ΔΕΝ ΥΠΑΡΧΟΥΝ ΠΟΡΤΟΚΑΛΟΠΑΡΑΓΩΓΟΙ." End If 29

30 Παρατηρήσεις Open "parag.txt" For Input As #1 ' Άνοιγμα αρχείου για διάβασμα Open "eispr.txt" For Output As #2 ' Άνοιγμα αρχείου για γράψιμο Κανόνες Ένα αρχείο κειμένου δεν μπορεί να είναι ανοικτό ταυτόχρονα για διάβασμα και γράψιμο. Μπορούμε όμως να το κλείσουμε και να το ανοίξουμε πάλι για άλλο σκοπό ή τον ίδιο σκοπό. Έστω ότι η εντολή του προγράμματος είναι Open "eispr.txt" For Output As #2 1. Αν το πρόγραμμα εκτελεσθεί, θα δημιουργηθεί το αρχείο eispr.txt. 2. Αν το πρόγραμμα επανεκτελεσθεί, τότε: - με την έναρξη λειτουργίας του προγράμματος, το περιεχόμενο του eispr.txt θα διαγραφεί. - με την ολοκλήρωση του προγράμματος, θα δημιουργηθεί πάλι το eispr.txt και θα περιέχει τα νέα δεδομένα. Αν θέλομε να προσθέσομε νέα δεδομένα σε ένα αρχείο (δηλαδή τα προηγούμενα δεδομένα του δεν θέλομε να χαθούν) τότε η εντολή ανοίγματος του αρχείου είναι Open "eispr.txt" For Append As #2 ' Άνοιγμα αρχείου για πρόσθεση (24-FILES-APPEND) 30

31 Κανόνες για το Αρχείο Εισόδου
Για να μπορεί το πρόγραμμα να βρει το αρχείο, ακολουθείστε τα παρακάτω Βήματα. Β1. Μόλις γράψετε το Πρόγραμμα, το αποθηκεύετε. Β2. Κλείνετε το Πρόγραμμα. Β3. Δημιουργείτε το Αρχείο Εισόδου και το αποθηκεύετε στην περιοχή όπου έχετε αποθηκεύσει το Πρόγραμμα. Β4. Ανοίγετε το Πρόγραμμα και το εκτελείτε.

32 Κανόνες για το Αρχείο Εισόδου
Το Αρχείο Εισόδου είναι καλό να έχει δημιουργηθεί από πρόγραμμα, όμως μπορεί να δημιουργηθεί και με το Notepad, μολονότι σ’ αυτή την περίπτωση κάνουμε συνήθως κάποια λάθη. Το όνομά του Αρχείου πρέπει να είναι μικρό σε πλήθος χαρακτήρων και να μην περιέχει ελληνικούς χαρακτήρες και κενά. Τόσο το Αρχείο Εισόδου όσο και το Πρόγραμμα είναι καλό να έχουν αποθηκευθεί στον ίδιο φάκελο. (Αυτό το προτιμάμε μόνον χάριν απλούστευσης της διαδικασίας διαχείρισης των αρχείων.)

33 Πιθανά Προβλήματα στη Διαχείριση Αρχείων
Πρόβλημα 1 Το πρόγραμμα σταματάει απότομα με την ένδειξη ότι υπάρχει λάθος στην εντολή Open. Τούτο υποδηλοί ότι το Πρόγραμμα δεν βρήκε το Αρχείο Εισόδου. Αυτό οφείλεται σε έναν από τους παρακάτω λόγους. Το Πρόγραμμα και το Αρχείο Εισόδου έχουν αποθηκευθεί σε διαφορετικές περιοχές. Το Πρόγραμμα δεν έχει σωθεί. Ως εκ τούτου, το Πρόγραμμα αναζητεί το Αρχείο Εισόδου σε κάποιο άλλο προκαθορισμένο μονοπάτι.

34 Πιθανά Προβλήματα στη Διαχείριση Αρχείων
Το Αρχείο Εισόδου - είτε δεν έχει καν δημιουργηθεί, - είτε έχει δημιουργηθεί αλλά δεν έχει σωθεί, - είτε έχει διαφορετικό όνομα από εκείνο που έχει δηλωθεί στο Πρόγραμμα (εντολή Open), - είτε έχει πολύ μεγάλο όνομα, - είτε περιέχει ελληνικούς χαρακτήρες, κενά ή σημεία στίξεως (εξαιρείται η τελεία που πρέπει να προηγείται του txt).

35 Πιθανά Προβλήματα στη Διαχείριση Αρχείων
Σε μερικές περιπτώσεις, ακόμη και αν τόσο το Πρόγραμμα όσο και το Αρχείο Εισόδου έχουν αποθηκευθεί στην ίδια περιοχή, το πρόβλημα λύνεται αν στην εντολή για το άνοιγμα των Αρχείων δηλώσουμε όλο το μονοπάτι. Για παράδειγμα, αν τόσο το Πρόγραμμα όσο και το Αρχείο Εισόδου βρίσκονται στον δίσκο D, η εντολή ανοίγματος των αρχείων πρέπει να γίνει: Open "D:\parag.txt" For Input As #1 Open "D:\eispr.txt" For Output As #2

36 Πιθανά Προβλήματα στη Διαχείριση Αρχείων
Πρόβλημα 2 Το πρόγραμμα σταματάει απότομα με την ένδειξη ότι διάβασε λανθασμένα δεδομένα (εντολή Input). Αυτό οφείλεται σε ένα από τους παρακάτω λόγους. Το Αρχείο Εισόδου έχει δημιουργηθεί - είτε με το Notepad - είτε έχει αντιγραφεί από το PowerPoint ή το Word και, ως εκ τούτου, περιέχει χαρακτήρες ελέγχου (control characters), οι οποίοι δεν είναι ορατοί (και συνεπώς δεν μπορούμε να τους δούμε για να τους διαγράψουμε). Σε αυτή την περίπτωση πρέπει να δημιουργήσουμε πάλι το αρχείο εισόδου.

37 Πιθανά Προβλήματα στη Διαχείριση Αρχείων
Στο Αρχείο Εισόδου τα δεδομένα δεν έχουν γραφεί σωστά. Π.χ. Τα δεδομένα δεν χωρίζονται με κόμμα. Υπάρχουν περισσότερα ή λιγότερα κόμματα από όσα πρέπει. Τα δεδομένα είναι κολλημένα ακριβώς μετά από κάποιο κόμμα. Οι δεκαδικοί αριθμοί χωρίζονται με κόμμα αντί με τελεία. - Το Αρχείο Εισόδου περιέχει περισσότερα ή λιγότερα δεδομένα από εκείνα που ζητείται να διαβασθούν με την εντολή Input. - Ο τύπος των δεδομένων δεν έχει δηλωθεί σωστά. Π.χ., θέλουμε να διαβάσουμε posotita (single) και από λάθος, έχουμε δηλώσει την posotita ως string.

38 Πιθανά Προβλήματα στη Διαχείριση Αρχείων
Το Αρχείο Εισόδου έχει δημιουργηθεί με το Notepad και, μετά την τελευταία εγγραφή, πατήθηκε το πλήκτρο αλλαγής γραμμής (enter).

39 Πιθανά Προβλήματα στη Διαχείριση Αρχείων
Συνηθισμένο πρόβλημα είναι ότι το πρόγραμμα σταματά απότομα με το μήνυμα Input past end of file. Σ’ αυτήν την περίπτωση, λείπει κάποιο κόμμα (,) στο Αρχείο Εισόδου.


Κατέβασμα ppt "Εφαρμογές Υπολογιστών"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google