iterator Δημοσιεύτηκε Αύγουστος 7, 2007 #1 Κοινοποίηση Δημοσιεύτηκε Αύγουστος 7, 2007 Καλησπέρα. Έχω ένα μικρό πρόβλημα με την αποθήκευση σε ένα πρόγραμμα που φτιάχνω.Μήπως γνωρίζει κανείς πως αποθηκεύουμε σε αρχείο χρωματιστό κείμενο. Χρησιμοποιώ wxDev-cpp και έχω ένα wxRichTextCtrl όπου εμφανίζονται τα αποτελέσματα του προγράμματος με διάφορα χρώματα.Προσπαθώ να περάσω τα περιεχόμενα του σε ένα αρχείο (με χρήση WxRichTextCtrl->GetValue(); ) αλλά μου τα περνάει όλα με μαύρο χρώμα. Έχω δοκιμάσει καταλήξεις .doc και .rtf αλλά τίποτα.Ευχαριστώ εκ των προτέρων Link to comment Share on other sites More sharing options...
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 θέλεις. Link to comment Share on other sites More sharing options...
iterator Αύγουστος 7, 2007 Author #3 Κοινοποίηση Αύγουστος 7, 2007 Ευχαριστώ πολύ για την απάντηση.Μάλλον αυτό που λες συμβαίνει αλλά δεν ξέρω πως να του περάσω και τις ιδιότητες των χρωμάτων. Προσπαθώ και με WxRichTextCtrl->GetBuffer() αλλά δεν καταλήγω πουθενά.Οποιαδήποτε πρόταση δεκτή για δοκιμή. Link to comment Share on other sites More sharing options...
DarkSaga Αύγουστος 7, 2007 #4 Κοινοποίηση Αύγουστος 7, 2007 άνοιξες ένα .doc να δεις πως είναι αποθηκευμένο?μήπως έχει tags σαν την html ? Link to comment Share on other sites More sharing options...
kallileo Αύγουστος 7, 2007 #5 Κοινοποίηση Αύγουστος 7, 2007 Οπως τα λεει ο Wizard ειναι... Ισως αν μπορουσες να αποθηκευσεις καπως σε XML ή html αρχειο και να χρησιμοποιησεις τα καταλληλα tags διοτι αν ειναι να αναλυσεις την δομη του doc καλυτερα phuck it. *Edit με προλαβε ο Sagas... Aν βαλεις μπροστα απο το κειμενο σου αυτο και το αποθηκευσεις σαν HTML αρχειο: <font color="red">Καποιο κειμενο... Θα παρεις το κειμενο σε κοκκινο χρωμα Link to comment Share on other sites More sharing options...
iterator Αύγουστος 7, 2007 Author #6 Κοινοποίηση Αύγουστος 7, 2007 Ωραία η πρόταση για html μορφή αλλά σίγουρα θα υπάρχει τρόπος για αυτό που θέλω.Όσο για το πως αποθηκεύονται στο .doc, όλα κανονικά εκτός από το χρώμα που με καίει.Ευχαριστώ για τις επισημάνσεις. Link to comment Share on other sites More sharing options...
Wizard! Αύγουστος 7, 2007 #7 Κοινοποίηση Αύγουστος 7, 2007 Βασικά και να το πάρεις με το WxRichTextCtrl->GetBuffer(), αν αυτό σου δίνει το περιεχόμενο που χρειάζεσαι, το θέμα είναι ότι δε γνωρίζεις τα specs για να το σώσεις σαν WinWord 97-2000. Αυτά πρέπει να βρεις και μετά να το μετατρέψεις. Link to comment Share on other sites More sharing options...
iterator Αύγουστος 8, 2007 Author #8 Κοινοποίηση Αύγουστος 8, 2007 Σωστό αυτό που λες Wizard! αλλά μου φαίνεται ιδιαίτερα δύσκολο. Δε γίνεται, κάποιος πιο απλός τρόπος θα υπάρχει. Αν κάποιος έχει καμιά ιδέα έστω και με διαφορετικό του WxRichTextCtrl control ας την προτείνει μήπως και καταλήξω σε κάτι σχετικά απλό που να δουλεύει. Ευχαριστώ. Link to comment Share on other sites More sharing options...
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} Link to comment Share on other sites More sharing options...
iterator Αύγουστος 8, 2007 Author #10 Κοινοποίηση Αύγουστος 8, 2007 Wizard! είσαι τρομερός. Μόλις έδωσες λύση στο πρόβλημα μου. Ευχαριστώ πολύ.Μου το είχες πει και προηγουμένως πως πρέπει να βρω τα specs του rtf αλλά το έψαξα λίγο και θεώρησα πως δεν πρόκειται να τα καταφέρω. Το παράδειγμα σου όμως είναι πολύ καλό και κατάλαβα τον τρόπο που δουλεύει. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.