Αποφυγή αυτόματης εισαγωγής ημερ/νίας στο Open Office calc.

Nikos Alexandris nikos.alexandris at uranus.uni-freiburg.de
Sat Aug 9 18:44:42 BST 2008


On Sat, 2008-08-09 at 20:26 +0300, Konstantinos Togias wrote:
> 2008/8/9 Nikos Alexandris <nikos.alexandris at uranus.uni-freiburg.de>:
> > On Fri, 2008-08-08 at 19:43 +0300, Konstantinos Togias wrote:
> >> 2008/8/8 Alexis Bitoulas <albitoulas at yahoo.gr>:
> >> > Φίλοι καλημέρα σας,
> >> >
> >> > Ευχαριστώ για την ανταπόκριση.
> >> >
> >> > Το αρχείο που έστειλες Νίκο Γιαννάρο, επιβεβαιώνω και εγώ ότι
> περιέχει
> >> > ακόμη κάποιες ημερομηνίες (κελιά Τ6, ΒΚ10) αν το ανοίξω είτε με
> το ΟΟ
> >> > calc, είτε με το Gnumeric. Με το gedit δεν κατάφερα να το ανοίξω,
> λόγω
> >> > "λανθασμένης κωδικοποίησης", όπως μου ανέφερε...
> >> > Άρα, το πρόβλημα υπάρχει ακόμα.
> >> >
> >> > Επίσης, επιβεβαιώνω και τα σημεία που παρατήρησες Νίκο Αλεξανδρή,
> με τα
> >> > κελιά που περιέχουν δύο τελείες αντί μία που είναι το σωστό. Δεν
> ξέρω
> >> > κατά πόσο αυτά τα κελιά είναι η αιτία για το πρόβλημα.
> >> >
> >> > Αν κάποιος άλλος έμπειρος με το ΟΟcalc, έχει υπόψιν του κάτι, θα
> το
> >> > εκτιμούσα πολύ!
> >> >
> >> > Διαφορετικά, μήπως μπορούμε να το αναφέρουμε κάπου πιο "πάνω",
> εννοώ
> >> > launchpad ή σε κάποιον άλλο υπεύθυνο για το ΟΟcalc. Επειδή δεν
> ξέρω και
> >> > πολλά πέρα από τη λίστα μας και το φόρουμ μας, αν μπορείτε δώστε
> μου
> >> > κάποιες κατευθύνσεις, σε περίπτωση που δεν το λύσουμε μόνοι μας
> το
> >> > πρόβλημα.
> >> >
> >> > Σας ευχαριστώ όλους,
> >> >
> >> > Φιλικά,
> >> >
> >> > --
> >> > Αλέξης
> >> >
> >> >
> >> >
> >> > --
> >> > Ubuntu-gr mailing list
> >> > Ubuntu-gr at lists.ubuntu.com
> >> >
> >> > If you do not want to receive any more messages from the
> ubuntu-gr mailing list, please follow this link and choose
> unsubscribe:
> >> > https://lists.ubuntu.com/mailman/listinfo/ubuntu-gr
> >> >
> >>
> >> Γεια σας,
> >>
> >> Κοίταξα λίγο το πρόβλημα με το csv αρχείο και έχω τα εξής σχόλια:
> >>
> >> 1. Το πρόβλημα με τη μετατροπή των δεκαδικών με τελεία (.) σε
> >> ημερομηνίες πρέπει να έχει να κάνει με την τοπικοποίηση του
> >> openoffice. Όταν το calc είναι σε εξελληνισμένο περιβάλλον
> >> αντιλαμβάνεται σαν χαρακτήρα διαχωρισμού ακεραίου από δεκαδικό μέρος
> >> το κόμμα (,), ενώ την τελεία (.) την ερμηνεύει ως διαχωριστικό μήνα,
> >> μέρας, έτους σε ημερομηνίες. Έτσι τους αριθμούς που περιέχουν . τους
> >> ερμηνεύει σαν ημερομηνίες και όχι σαν δεκαδικούς. Δεν ξέρω αν - από
> >> που ρυθμίζεται αυτή η συμπεριφορά, αλλά θα μπορούσε να δοκιμάσει
> >> κάποιος που έχει αγγλικό περιβάλλον και αγγλικό openoffice να μας πει
> >> αν η συμπεριφορά εκεί είναι πιο κοντά στην αναμενόμενη (δηλ οι τελείες
> >> ερμηνευονται ως δεκαδικοί και όχι ως ημερομηνίες).
> >
> > Κώστα, νομίζω ότι αυτό δεν είναι πρόβλημα αφού κατά το άνοιγμα ενός csv
> > με το ΟΟCalc έχει τη δυνατότητα ο χρήστης να επιλέξει τον χαρακτήρα που
> > παίζει το ρόλο του διαχωριστή στηλών. Βέβαια, εγώ έχω την Αγγλική γλώσσα
> > (και άρα την τελεία ως διαχωεριστικό χαρακτήρα για δεκαδικά ψηφία).
> > Ωστόσο, στηρίζω τα λεγόμενά μου στο ότι ο Αλέξης, που έχει ρυθμίσεις
> > στην Ελληνική, δεν ανέφερε να υπάρχει πρόβλημα με όλους τους αριθμούς
> > παρά μόνο με συγκεκριμένους. Εκεί λοιπόν συνέδεσα το πρόβλημα με την
> > ύπαρξη δυο τελειών.
> >
> 
> Εγώ είδα όλους τους δεκαδικούς να μετατρέπονται σε ημερομηνία. Π.χ. το
> 2.5 έγινε 02.05.08. Γι' αυτό πιστεύω ότι το πρόβλημα είναι στην
> τοπικοποίηση... Κάποιος άλλος μπορεί να το ελέγξει σε ελληνικό
> περιβάλλον και να μας πει αν μετατρέπονται σε ημερομηνίες μόνο κάποιοι
> ή όλοι οι αριθμοί της μορφής x.y ;

Ίσως να έχω κάνει λάθος εγώ.

Αλέξη, μπορείς να επιβεβαιώσεις (πέρα από το πρόβλημα με τις δυο
τελείες) σου μετατρέπει όλους τους αριθμούς σε ημερομηνίες;

> >> 2. Στο αρχείο υπάρχουν τιμές της μορφής 23..5 που είναι λογικό να
> >> δημιουργούν πρόβλημα . Δεν ξέρω τι κάνει και τι θα έπρεπε να κάνει το
> >> calc όταν συναντά τέτοιες τιμές. Η ύπαρξη  της διπλής τελείας, αν δεν
> >> είναι για κάποιο λόγο ηθελημένη, αποτελεί σφάλμα του προγράμματος που
> >> παρήγαγε το CSV αρχείο.
> >
> > Ίσως να ήταν μια χρήσιμη "διορθωτική" λειτουργία στο OOCalc να ρωτά το
> > χρήστη αν θέλει να "διορθώσει" τέτοιες τιμές (;)
> >
> >
> >> 3. Το calc για κάποιο λόγο αρνείται να φορτώσει όλες τις γραμμές του
> >> CSV . Φορτώνει τις 11 πρώτες και στη συνέχεια βγάζει ένα μήνυμα για
> >> υπέρβαση μέγιστου ορίου γραμμών. Κάποιος πρέπει να δει πως είναι το
> >> μήνυμα αυτό στα και να ψάξει λίγο στο google για το τι σημαίνει και
> >> αν/από που ρυθμίζεται - παρακάμπτεται το μέγιστο όριο γραμμών
> >
> > Αυτό είναι γνωστό πρόβλημα τελικά. Για παράδειγμα [1] [2] που κατά πάσα
> > πιθανότητα θα είναι φιξαρισμένο στην έκδοση ΟΟ3 [3].
> >
> > [1]
> > http://www.nabble.com/Maximum-number-of-rows-and-columns-in-Calc--td17106361.html
> > [2] http://www.openoffice.org/issues/show_bug.cgi?id=86049
> > [3] http://www.openoffice.org/issues/show_bug.cgi?id=86049
> >
> >>
> >> 4. Κατα προσωπική μου γνώμη τα παραπάνω (πέραν της διπλής τελείας
> >> ίσως) οφείλονται σε ελλειπή υλοποίηση και έλλειψη επιλογών στη
> >> διαδικασία εισαγωγής CSV αρχείων από μεριάς του openoffice 2.4.1 . Ας
> >> ελπίσουμε ότι τα πράγματα θα είναι καλύτερα στο ooo3 .
> >>
> >> 5. Επειδή όμως είμαστε στον κόσμο του Unix (και ειδικότερα του
> >> υπέροχου ελεύθερου linux) πολλά μπορούν να διορθωθούν εύκολα και
> >> γρήγορα όταν έχουμε να κάνουμε με αρχεία κειμένου, με τη χρήση
> >> εξωτερικών προγραμμάτων επεξεργασίας ροών κειμένου (stream editors),
> >> όπως το sed ή το awk που με τη βοήθεια των κανονικών εκφράσεων
> >> (regular expressions) αποτελούν πανίσχυρα εργαλεία και μας επιτρέπουν
> >> να μεταμορφώνουμε αρχεία κειμένου όπως το CSV για το οποίο μιλάμε. Με
> >> το sed λοιπόν μπορεί κάποιος να εξαφανίσει τις διπλές -τριπλές κλπ
> >> τελείες και να τις αντικαταστήσει με μία μόνο τελεία, να αλλάξει τα
> >> διαχωριστικά των κελιών από κόμματα σε κάτι άλλο, και μετά να αλλάξει
> >> τις διαχωριστικές τελείες σε κόμματα, ωστε οι αριθμοί να αποκτήσουν
> >> ελληνοποιημένη μορφή (κόμμα αντί τελεία για δεκαδικά). Η εντολή που
> >> έτρεξα εγώ από το τερματικό είναι η εξής:
> >>
> >> sed 's/\([0-9]\)\.\.\([0-9]\)/\1\.\2/g' < download.csv | sed 's/,/|/g'
> >> | sed 's/\./,/g' > download.corrected.csv
> >
> > Μια σημείωση για τον άπειρο χρήστη: η εντολή έχει ως "στόχο" το αρχείο
> > download.csv και θα πρέπει να εκτελεστεί μέσα από τον (υπο-)κατάλογο
> > στον οποίο βρίσκεται το αρχείο-στόχος.
> >
> >
> >> Η παραπάνω εντολή μπορεί αρχικά να φαίνεται λίγο ακαταλαβίστικη, αλλά
> >> μολις την σπάσει κάποιος σε τμήματα και συνηθίσει τη σύνταξη των
> >> κανονικών εκφράσεων θα ξετυλιχτεί μπροστά του όλη η ομορφιά της:
> >>
> >> α. Η γραμμή αποτελείται από διαδοχικές διασωληνώσεις (pipes) 3
> >> εκτελέσεων του προγράμματος sed. Τα διασωληνωμένα τμήμα διαχωρίζονται
> >> με τον χαρακτήρα | όταν αυτός δεν βρίσκεται μέσα σε μονά εισαγωγικά
> >> (').
> >>
> >> β. Η πρώτη εντολή εκτελεί το sed με είσοδο το αρχείο download.csv και
> >> με την κανονική έκφραση  s/\([0-9]\)\.\.\([0-9]\)/\1\.\2/g που
> >> βρίσκεται ανάμεσα σε απλά εισαγωγικά. Η κανονική έκφραση
> >> s/\([0-9]\)\.\.\([0-9]\)/\1\.\2/g λέει στο sed να αντικαταστήσει όλες
> >> τις εμφανίσεις δυο συνεχόμενων χαρακτήρων τελεία που βρίσκονται
> >> ανάμεσα σε δυο αριθμητικούς χαρακτήρες, με μια μόνο τελεία που
> >> βρίσκεται ανάμεσα σε αυτούς τους χαρακτήρες.
> >>
> >> γ. Η δεύτερη εντολή θα τρέξει με είσοδο την έξοδο της προηγούμενης και
> >> με βάση τα όσα λέει η δική της κανονική έκφραση θα αντικαταστήσει όλα
> >> τα κόμματα με τον χαρακτήρα | .
> >>
> >> δ. Συνεχίζοντας τη διασωλήνωση όταν η ροή κειμένου φτάσει στην τρίτη
> >> εντολή οι τελείες θα αντικατασταθούν με κόμματα.
> >>
> >> ε. Η έξοδος της τελευταίας εντολής ανακατευθύνεται με τον χαρακτήρα >
> >> από το κέλυφος στο αρχείο  download.corrected.csv .
> >>
> >> Έτσι το αρχείο download.corrected.csv περιέχει τα δεδομένα που είχε το
> >> download.csv, χωρίς διπλές τελείες, με | αντί για κόμματα για το
> >> διαχωρισμό των κελιών και με , αντι για . για το διαχωρισμό ακέραιου
> >> και δεκαδικού μέρους. Το παραγώμενο αρχείο το άνοιξα με  calc σε
> >> ελληνικό περιβάλλον επιλέγοντας στο "διαχωριζόμενα με" "άλλο" και
> >> ορίζοντας τον χαρακτήρα | ως διαχωριστικό και το άνοιξε χωρις (προφανή
> >> τουλάχιστον) λάθη. Οι αριθμοί αναγνωρίστικαν κανονικά ως δεκαδικοί με
> >> κόμμα, και δεν υπήρχαν ημερομηνίες. Βέβαια πάλι το calc αρνήθηκε να
> >> εισάγει όλες τις γραμμές του CSV.
> >>
> >> Παραπομπές:
> >>
> >> Sed - An introduction and tutorial : http://www.grymoire.com/Unix/Sed.html
> >>
> >> Introducing Unix shell pipes: http://sig9.com/articles/unix-pipes-intro
> >
> > Φιλικά, Νίκος
> >
> >
> > --
> > Ubuntu-gr mailing list
> > Ubuntu-gr at lists.ubuntu.com
> >
> > If you do not want to receive any more messages from the ubuntu-gr mailing list, please follow this link and choose unsubscribe:
> > https://lists.ubuntu.com/mailman/listinfo/ubuntu-gr
> >
> 
> 
> 
-- 
Nikos Alexandris




More information about the Ubuntu-gr mailing list