On Sat, 2008-08-09 at 20:26 +0300, Konstantinos Togias wrote: > 2008/8/9 Nikos Alexandris <[EMAIL PROTECTED]>: > > On Fri, 2008-08-08 at 19:43 +0300, Konstantinos Togias wrote: > >> 2008/8/8 Alexis Bitoulas <[EMAIL PROTECTED]>: > >> > Φίλοι καλημέρα σας, > >> > > >> > Ευχαριστώ για την ανταπόκριση. > >> > > >> > Το αρχείο που έστειλες Νίκο Γιαννάρο, επιβεβαιώνω και εγώ ότι > περιέχει > >> > ακόμη κάποιες ημερομηνίες (κελιά Τ6, ΒΚ10) αν το ανοίξω είτε με > το ΟΟ > >> > calc, είτε με το Gnumeric. Με το gedit δεν κατάφερα να το ανοίξω, > λόγω > >> > "λανθασμένης κωδικοποίησης", όπως μου ανέφερε... > >> > Άρα, το πρόβλημα υπάρχει ακόμα. > >> > > >> > Επίσης, επιβεβαιώνω και τα σημεία που παρατήρησες Νίκο Αλεξανδρή, > με τα > >> > κελιά που περιέχουν δύο τελείες αντί μία που είναι το σωστό. Δεν > ξέρω > >> > κατά πόσο αυτά τα κελιά είναι η αιτία για το πρόβλημα. > >> > > >> > Αν κάποιος άλλος έμπειρος με το ΟΟcalc, έχει υπόψιν του κάτι, θα > το > >> > εκτιμούσα πολύ! > >> > > >> > Διαφορετικά, μήπως μπορούμε να το αναφέρουμε κάπου πιο "πάνω", > εννοώ > >> > launchpad ή σε κάποιον άλλο υπεύθυνο για το ΟΟcalc. Επειδή δεν > ξέρω και > >> > πολλά πέρα από τη λίστα μας και το φόρουμ μας, αν μπορείτε δώστε > μου > >> > κάποιες κατευθύνσεις, σε περίπτωση που δεν το λύσουμε μόνοι μας > το > >> > πρόβλημα. > >> > > >> > Σας ευχαριστώ όλους, > >> > > >> > Φιλικά, > >> > > >> > -- > >> > Αλέξης > >> > > >> > > >> > > >> > -- > >> > Ubuntu-gr mailing list > >> > [email protected] > >> > > >> > 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 > > [email protected] > > > > 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 -- Ubuntu-gr mailing list [email protected] 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

