C++/CLI Programm schreiben welches eine Word Datei erstellt
Hallo Leute ich möchte ein Programm schreiben mit Microsoft Visual Studio Express 2010 c++/CLI welches verschiedene Möglichkeiten bietet etwas auszuwählen und dann je nach dem was ausgewählt wurde darüber eine Text Datei erstellt.
Kann mir da jemand Hilfestellung geben?
Grüße Orthor
3 Antworten
Die Spezifikation für Word-Dateien ist so überkomplex, dass du das ganze JETZT sofort aufgeben solltest!
Du wirst keine Word-Dateien schreiben können, auch nicht mit C++ Standard-Streams oder Dateizugriffsmethoden.
Dafür solltest du dringendst eine fertige API benutzen bzw. dir eine Drittanbieter Bibliothek besorgen.
Anstatt Word kannst du aber mit Standard C++ Funktionen und ein paar sehr einfachen Funktionen RTF oder HTML Dokumente erzeugen! Sogar eine fertig layoutete Seite als SVG-Datei kannst du über Platzhalter mit C++ Standardfunktionalitäten befüllen, und damit deine Dokumente aufbauen.
Für PDF gibt es auch noch schöne Bibliotheken, wobei PDFs später natürlich nicht mehr (ohne weiteres) bearbeitbar sind.
Aber Word-Dokumente? Ernsthaft? Ein komplizierteres Dateiformat hast du wohl nicht finden können. :)
Wenn es wirklich Word sein muss, dann guck dir mal das offizielle SDK von MS an; gibt aber auch gute Drittanbieterbibliotheken.
Ich würde für so etwas - je nach Anforderung - HTML, RTF oder SVG nehmen ... oder einfach direkt eine PDF aus dem Programm heraus aufbauen. (wobei letzteres auch Drittanbieter Bibliotheken benötigt)
Im Grunde genommen kannst du zwar alles selbst entwickeln, aber bei PDF wird das Monate und bei Word-Dokumenten Jahre dauern.
HTML, RTF und SVG sind selbst für Anfänger völlig ohne Drittanbieter-Bibliotheken in weit unter einer Stunde zu implementieren.
Naja, trotzdem viel Spaß! Wie gesagt, wenn es Word sein muss, nimm ein SDK! Sonst kommst du auf keinen grünen Zweig! :)
Interessant, dass wusste ich gar nicht dass die so komplex sind. Hast du mal einen Link zu einem Artikel oder ähnlichem wo das Thema behandelt wird ? Habe nichts gutes dazu gefunden!
Guck dir mal diesen Wikipedia Artikel zu OOXML an.
Dort gibt es im Abschnitt "Kritik" folgendes Zitat:
Kritisiert wird dabei der Umfang der Spezifikation mit über 6000 Seiten. Kritiker gehen davon aus, dass nur Microsoft die Spezifikation in vollem Umfang umsetzen könne, während es für Softwarehersteller von Konkurrenzprodukten praktisch unmöglich sei, das Dateiformat vollständig in ihre Anwendungen zu implementieren.
Man muss dazu sagen, dass Microsoft es hier und heute selbst noch immer NICHT geschafft hat, ihren eigenen Standard umzusetzen! Mit anderen Worten: es gibt immer noch Unstimmigkeiten zwischen dem Standard und den von Word erstellten Dokumenten.
Daher wird ein Anfänger selbst die 6000 Seiten Spezifikation niemals selbstständig vollständig implementieren können!
Guck dir bitte auch mal die weiterführunden Links und Quellenangaben am Schluss des Wikipedia Artikels an!
Also mit einer Drittanbieter-Bibliothek hast du durchaus eine Chance, wenn du auf viele Funktionen verzichtest, die Word normalerweise bietet.
Als Einzelperson solltest du dich aber wirklich auf RTF, SVG, HTML oder notfalls PDF beschränken.
DOCX ohne Third-Party-Libs ist mit purem C++ reiner Irrsinn! :)
Trotzdem nochmal viel Erfolg, für welches Dateiformat du dich letzendlich auch entscheidest! :)
Nein Filestreams sagen mir nichts, ich bin auch noch ein Anfänger...
Aber ja es soll eine vernünftige GUI haben. :)
Mit C++ bekommst du als Anfänger keine vernünftige GUI hin, dafür brauch man deutlich mehr Erfahrung. (Bzw. man versucht sich an copy & paste)
Nunja die Gui ist eigentlich schon fast fertig. wie der text am ende aussehen soll ist auch schon klar. wenn ich eine richTextBox benutze geht mein Konzept ja auch auf. nur möchte ich das es am ende eine richtige Text Datei ist die man auch Speichern kann.
Hier solltest du alles finden was du brauchst: http://www.willemer.de/informatik/cpp/fileop.htm
Sagen dir Filestreams etwas? Was brauchst du konkret?
Woher nimmst du die Information, dass das eine Word ( .doc(x)) Datei werden soll? Textdateien sind für mich noch immer die .txt, und die sind das Einfachste überhaupt...