Σάββατο, 9 Ιουνίου 2018

Αναθεώρηση 10 (έκδοση 9.3) και παράδειγμα CSV+ Excel

Έχει ανέβει η αναθεώρηση 10 της έκδοσης 9.3. Παράλληλα γίνεται ανανέωση στο μικρό εγχειρίδιο της Μ2000 (στα ελληνικά). Παρακάτω είναι ανανεωμένο το παράδειγμα που ετοιμάζει ένα αρχείο το στέλνει στο Excel. Εκεί το σώνουμε και κλείνουμε το Excel και αυτόματα το διαβάζει το πρόγραμμα. Δουλεύει για οποιοδήποτε χαρακτήρα διαχωρισμού δεκαδικών, επειδή διαβάζει άμεσα το τρέχον και προσαρμόζει την εξαγωγή (και την εισαγωγή) στο αρχείο.

Επίσης εδώ χρησιμοποιούμε την παραλλαγή όπου τα αλφαριθμητικά δεν γράφονται στο αρχείο CSV με εισαγωγικά.


\\ Με το πρόγραμμα αυτό θα φτιάξουμε ένα CSV αρχείο
\\ το οποίο θα το διαβάζει το excel

Κανε ακέραιο κ \\ η τιμή ορίζεται από την Ανοιξε

\\ το 0xE δίνει το σύμβολο για τα δεκαδικά - μπορεί να είναι το κόμμα ή η τελεία.
Τοπικό 0 ' για να διαβάσουμε το τρέχον τοπικο$(0xE) και όχι κάποιο ειδικά
Κάνε ΑλλαξεΤελεία$(α$)=αλλαγη$(".",τοπικο$(0xE),α$)
Δες οκ {
Άνοιξε "αλφα.csv" για ευρεία εξαγωγή ως κ
}
Αν όχι οκ Τότε Λάθος "Δεν μπορώ να ανοίξω το αρχείο αλφα.csv"
      Τύπωσε #κ, χαρκωδ$(0xFEFF); \\ λέγεται BOM και μαρκάρει το κείμενο ως UTF-16LE
      \\ το ; κάνει την τύπωσε να μην βάζει αλλαγή γραμμής
      \\ οι αριθμοί στο κώδικα γράφονται πάντα με τελεία για δεκαδικό
      \\ στην εμφάνιση στην Τύπωσε βγαίνουν βάσει του τοπικού
      Γράψε με χαρ$(9), τοπικο$(0xE) ,, αληθες
      Γράψε #κ, "Τιμή Α", "Τιμή Β","Αποτέλεσμα Κ"
      Γράψε #κ, 12.24, 213.23, 213.23+12.24
      Γράψε #κ, 15.24, 215.23, 215.23+15.24
      Γράψε #κ, ΑλλαξεΤελεία$("=A2+A3*2.5"), ΑλλαξεΤελεία$("=B2+B3*2.5"), ΑλλαξεΤελεία$("=C2+C3*2.5")
Κλείσε #κ
Γράψε με "",""  \\ κάνουμε επιστροφή στις τιμές κόμμα και τελεία
Σύστημα "Excel.exe ", παράθεση$(κατ$+"αλφα.csv")
\\ δίνουμε ένα χρόνο 3 δευτερολέπτων για να ανοίξει το αρχείο το Excel
Αναμονή 3000
Έγγραφο Excel$
{
      Δες οκ {
            \\ αν είναι ανοιχτό με το Excel είναι για αποκλειστική χρήση
            \\ οπότε βγαίνει λάθος η συμπλήρωση (append)
            Άνοιξε "αλφα.csv" για συμπλήρωση ως κ
            Κλείσε #κ
            Φόρτωσε.Έγγραφο Excel$, "αλφα.csv"
      }
      αν λάθος ή οχι οκ τότε αναμονή 100 : κυκλικα
}
\\ μας εμφανίζει τα στοιχεία που φόρτωσε το έγγραφο
\\ στο έγγραφο το BOM έχει αφαιρεθεί!
Αναφορά Excel$
\\ Όπως ορίζουμε τρόπο για την Γράψε, έτσι ορίζουμε και για την Εισαγωγή
\\ το πρώτο ορίζει τον χαρακτήρα που διαχωρίζει τα στοιχεία στην γραμμή
\\ το δεύτερο ορίζει τον χαρακτήρα για το διαχωριστικό δεκαδικών
\\ η τρίτη προαιρετική παράμετρος με αληθές δηλώνει ότι ειδικοί χαρακτήρες θα έχουν escape κωδικούς
\\ η τέταρτη προαιρετική παράμετρος δηλώνει ότι τα αλφαριθμητικά δεν θα έχουν εισαγωγικά
Τοπικό 0 ' είναι ήδη 0 αλλά το βάζουμε για να φανεί ότι είναι απαραίτητο
Εισαγωγή με χαρ$(9), τοπικο$(0xE) ,, Αληθές
Άνοιξε "αλφα.csv" για ευρεία εισαγωγή ως κ
      \\ μπορούμε να μεταθέσουμε τον δρομέα, από το 1 που είναι η αρχή στο 3
      \\ και έτσι να αφήσουμε το BOM έξω
      Μετάθεση #κ, 3
      \\ τώρα διαβάζουμε τις επικεφαλίδες
      Εισαγωγή #κ, τ1$, τ2$, τ3$
      Τύπωσε τ1$, τ2$, τ3$
      Για ι=1 έως 2 {
            Εισαγωγή #κ, τ1, τ2, τ3
            Τύπωσε τ1, τ2, τ3
      }   
      \\ ίσως να μην έχει γίνει καταχώρηση οπότε θα πάρουμε αλφαριθμητικά
      Εισαγωγή #κ, τ1$, τ2$, τ3$
      Αν Θέση(τ1$,"=")=0 τότε {
            τ1=Τιμή(τ1$)
            τ2=Τιμή(τ2$)
            τ3=Τιμή(τ3$)
            Τύπωσε τ1, τ2, τ3
      } Αλλιώς {
            Τύπωσε τ1$, τ2$, τ3$
      }
Κλείσε #κ