Τετάρτη, 19 Αυγούστου 2015

Χειρισμός Εγγράφων στη Μ2000 μέρος 1ο

Η Μ2000 διαθέτει ένα τύπο μεταβλητής το Έγγραφο
Οποιοδήποτε αλφαριθμητικό ή στοιχείο πίνακα αλφαριθμητικών μπορεί να γίνει έγγραφο. Το έγγραφο διατηρεί τα δεδομένα του σε παραγράφους.Με αυτόν τον τρόπο έχουμε δυνατότητα να χειριστούμε μεγάλα κείμενα και να κινηθούμε ανά παράγραφο.
Επιπλέον έχουμε την δυνατότητα να αποθηκεύσουμε το έγγραφο με έναν από τέσσερις τρόπους. Εδώ θα δούμε ένα πρόγραμμα που φτιάχνει τέσσερις φορές το ίδιο έγγραφο, και σε κάθε φορά το σώνει και το προσθέτει επίσης (έτσι διπλασιάζει το μήκος του αρχείου). Μετά μας το παρουσιάζει στον διορθωτή (εμείς απλά πατάμε Esc για να κλείσει) και μας λέει το μέγεθός του στο δίσκο.

Εδώ θα δούμε τις Τύπωσε πάνω, Τύπωσε μέρος, Τύπωσε υπό, νέες εντολές της έκδοσης 8 για την παρουσίαση τιμών και λέξεων στην οθόνη. Η πρώτη διαγράφει πρώτα το φόντο της γραμμής που θα γράψουμε και κάνει πρόσκαιρα το πλάτος της στήλης όσο το πλάτος της οθόνης σε χαρακτήρες. Έτσι μας βολεύει να τυπώσουμε με στοίχιση στο κέντρο, εδώ γίνεται με την $(6), μια εσωτερική συνάρτηση χειρισμού της Τύπωσε. Η δεύτερη τυπώνει χωρίς να αλλάζει γραμμή ακόμα και αν βάλουμε περισσότερες στήλες από όσες χωράνε. Η τελευταία βάζει πρώτα μια υπογράμμιση και μετά αλλάζει γραμμή εκτύπωσης και γίνεται σαν την Τύπωσε Μέρος.

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

Επίσης εδώ χρησιμοποιούμε την Για Επόμενο και όχι την Για {} χωρίς κάποιο ιδιαίτερο λόγο (η Για {} είναι πιο γρήγορη αλλά δεν μας ενδιαφέρει εδώ) .

Δείτε πως με μια ανάθεση τιμών γεμίζουμε τον πίνακα α$() με τέσσερα στοιχεία.

Η εντολή συγγραφή (ή σ για συντομία, και είναι και έτσι αποδεκτή από τον διερμηνευτή), χρησιμοποιείται εδώ όχι για να φτιάξει κάποιο τμήμα ή κάποια συνάρτηση αλλά για να μας φέρει στον διορθωτή ένα κείμενο από το δίσκο. Αυτόματα αναγνωρίζει ποιος από τους τέσσερις τύπους είναι και ότι αλλάξουμε το γράφει στο αρχείο πίσω. (μπορούμε να ακυρώσουμε τις αλλαγές με shift Escape - και από το αναδυόμενο μενού επιλογών, με δεξί κλικ στα γράμματα ή με αριστερό στην επικεφαλίδα του διορθωτή)

Τέλος δείτε ακόμα και τη συνάρτηση μορφή$(). Δεν φαίνεται εδώ η περίπτωση στρογγυλοποίησης αριθμού:

Τύπωσε μορφή$("Α={0:2}, Β={1:2}", 2.567, 3.789)
 Μπορεί κανείς να το αντιγράψει σε ένα τμήμα. Με μια εντολή Σ α ανοίγει ο διορθωτής στο τμήμα α και αντιγράφουμε το παρακάτω (απαιτεί την τελευταία αναθεώρηση 34 της έκδοσης 8, δείτε τον σύνδεσμο δεξιά στη στήλη)

Οι οριζόντιες γραμμές στην εικόνα φτιάχτηκαν με την Τύπωσε υπό (υπογράμμιση. αλλά το έφαγα λίγο...)

Τα αρχεία σώνονται στο κατάλογο του χρήστη (δεν ορίσαμε κάτι άλλο εδώ)

Φόρμα 60,32
οθονη 15 \\ άσπρο
πένα 0 \\ μαύρο
Πίνακας α$(4) : α$(0)="UTF-16LE","UTF-16BE","UTF-8","ANSI"
Τύπωσε πάνω $(6),"Παράδειγμα για αποθήκευση εγγράφου με τέσσερις τρόπους"
Για ι=0 έως 3
       Καθαρό δοκίμασέμε$
      Εγγραφο δοκίμασέμε$ = {1η γραμμή
                              2η γραμμή
                              3η γραμμή
                              }
       δοκίμασέμε$={4η γραμμή  \\ πάτα απλά Esc
                               }
       Τύπωσε υπό  "Σώνω μια φορά και προσθέτω άλλη μια:"  : Τύπωσε
      \\ 10 χαρακτήρες δεξί περιθώριο για την αναφορά
      Τύπωσε @(10), : Αναφορά δοκίμασέμε$ : Τύπωσε @(0),   \\ επιστρέφει ο δρομέας τέρμα αριστερά
      Σώσε.έγγραφο δοκίμασέμε$, "alfa1.txt", ι
       Πρόσθεσε.έγγραφο δοκίμασέμε$, "alfa1.txt", ι
      Τύπωσε μέρος μορφή$({Μήκος αρχείου "{0}" σε bytes {1} τύπος {2}, συνολικοί χαρακτήρες {3}}, "alfa1.txt", αρχείου.μήκος("alfa1.txt"), α$(ι), Εγγράφου.μήκος(δοκίμασέμε$)*2)
       συγγραφή "alfa1.txt"
Επόμενο ι
Τύπωσε υπό


(κάθε φορά που μας ανοίγει το διορθωτή το σύστημα πατάμε Esc για να βγεί)
στην εικόνα εμφανίζονται συνολικοί χαρακτήρες 132, αλλά βγαίνουν 124, και σε Linux/Wine και σε Windows (μάλλον είναι παλιά η εικόνα)

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου