iterator Δημοσιεύτηκε Αύγουστος 7, 2007 #1 Δημοσιεύτηκε Αύγουστος 7, 2007 Καλησπέρα. Έχω ένα μικρό πρόβλημα με την αποθήκευση σε ένα πρόγραμμα που φτιάχνω.Μήπως γνωρίζει κανείς πως αποθηκεύουμε σε αρχείο χρωματιστό κείμενο. Χρησιμοποιώ wxDev-cpp και έχω ένα wxRichTextCtrl όπου εμφανίζονται τα αποτελέσματα του προγράμματος με διάφορα χρώματα.Προσπαθώ να περάσω τα περιεχόμενα του σε ένα αρχείο (με χρήση WxRichTextCtrl->GetValue(); ) αλλά μου τα περνάει όλα με μαύρο χρώμα. Έχω δοκιμάσει καταλήξεις .doc και .rtf αλλά τίποτα.Ευχαριστώ εκ των προτέρων
Wizard! Αύγουστος 7, 2007 #2 Αύγουστος 7, 2007 Χωρίς να γνωρίζω C++, αλλά λίγο πολύ όλες οι γλώσσες με τον ίδιο τρόπο δουλεύουν, πως το αποθηκεύεις το κείμενο?Αν για παράδειγμα το control σου είναι το wxRichTextCtrl, αποθηκεύεις το wxRichTextCtrl.Text, ή το wxRichTextCtrl.Value?Σε αυτές τις περιπτώσεις, έχουν μόνο την τιμή του κειμένου κι όχι τα χρώματα. Στη VB για παράδειγμα τα χρώματα θα τα έχει στο .FontColor, .BGColor, .FontSize, .FontFamily, κλπ.Και πάλι όμως για να τα πάρεις αυτά, πρέπει να ξέρεις τα specs του φορμάτ (για παράδειγμα .doc) ώστε να δημιουργήσεις ένα binary αρχείο στη μνήμη και μετά να το κάνεις stream σε αρχείο .doc.Πιθανότατα να υπάρχει κάποιο έτοιμο control που να παίρνει αυτό τα δεδομένα από το wxRichTextCtrl και να στα βγάζει σε ότι format θέλεις.
iterator Αύγουστος 7, 2007 Author #3 Αύγουστος 7, 2007 Ευχαριστώ πολύ για την απάντηση.Μάλλον αυτό που λες συμβαίνει αλλά δεν ξέρω πως να του περάσω και τις ιδιότητες των χρωμάτων. Προσπαθώ και με WxRichTextCtrl->GetBuffer() αλλά δεν καταλήγω πουθενά.Οποιαδήποτε πρόταση δεκτή για δοκιμή.
DarkSaga Αύγουστος 7, 2007 #4 Αύγουστος 7, 2007 άνοιξες ένα .doc να δεις πως είναι αποθηκευμένο?μήπως έχει tags σαν την html ?
kallileo Αύγουστος 7, 2007 #5 Αύγουστος 7, 2007 Οπως τα λεει ο Wizard ειναι... Ισως αν μπορουσες να αποθηκευσεις καπως σε XML ή html αρχειο και να χρησιμοποιησεις τα καταλληλα tags διοτι αν ειναι να αναλυσεις την δομη του doc καλυτερα phuck it. *Edit με προλαβε ο Sagas... Aν βαλεις μπροστα απο το κειμενο σου αυτο και το αποθηκευσεις σαν HTML αρχειο: <font color="red">Καποιο κειμενο... Θα παρεις το κειμενο σε κοκκινο χρωμα
iterator Αύγουστος 7, 2007 Author #6 Αύγουστος 7, 2007 Ωραία η πρόταση για html μορφή αλλά σίγουρα θα υπάρχει τρόπος για αυτό που θέλω.Όσο για το πως αποθηκεύονται στο .doc, όλα κανονικά εκτός από το χρώμα που με καίει.Ευχαριστώ για τις επισημάνσεις.
Wizard! Αύγουστος 7, 2007 #7 Αύγουστος 7, 2007 Βασικά και να το πάρεις με το WxRichTextCtrl->GetBuffer(), αν αυτό σου δίνει το περιεχόμενο που χρειάζεσαι, το θέμα είναι ότι δε γνωρίζεις τα specs για να το σώσεις σαν WinWord 97-2000. Αυτά πρέπει να βρεις και μετά να το μετατρέψεις.
iterator Αύγουστος 8, 2007 Author #8 Αύγουστος 8, 2007 Σωστό αυτό που λες Wizard! αλλά μου φαίνεται ιδιαίτερα δύσκολο. Δε γίνεται, κάποιος πιο απλός τρόπος θα υπάρχει. Αν κάποιος έχει καμιά ιδέα έστω και με διαφορετικό του WxRichTextCtrl control ας την προτείνει μήπως και καταλήξω σε κάτι σχετικά απλό που να δουλεύει. Ευχαριστώ.
Wizard! Αύγουστος 8, 2007 #9 Αύγουστος 8, 2007 Αυτό είναι ένα παράδειγμα rtf. Αν δεν το κάνεις έτσι, το τι extention θα δώσεις στο αρχείο, δεν παίζει ρόλο{\rtf1\ansi\ansicpg1253\deff0\deflang1032{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\fswiss\fprq2\fcharset0 Verdana;}{\f2\fmodern\fprq1\fcharset0 Courier New;}{\f3\fswiss\fcharset161{\*\fname Arial;}Arial Greek;}}{\colortbl ;\red255\green0\blue0;\red255\green255\blue0;}{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\cf1\lang1033\f0\fs20 This is red\cf0\parThis is black\par\cf2 This is yellow\cf0\par\fs24 This is 12pt\fs20\par\fs32 This is 16pt\fs20\par\f1 This is Verdana\f0\par\f2 This is courier\f0\par\cf1\b\f1\fs28 This is Verdana, red, bold, at 14pt\cf0\lang1032\b0\f3\fs20\par}
iterator Αύγουστος 8, 2007 Author #10 Αύγουστος 8, 2007 Wizard! είσαι τρομερός. Μόλις έδωσες λύση στο πρόβλημα μου. Ευχαριστώ πολύ.Μου το είχες πει και προηγουμένως πως πρέπει να βρω τα specs του rtf αλλά το έψαξα λίγο και θεώρησα πως δεν πρόκειται να τα καταφέρω. Το παράδειγμα σου όμως είναι πολύ καλό και κατάλαβα τον τρόπο που δουλεύει.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.