C++ oder C zum auslesen von XML Dateien
-
Moin moin,
erstmal ein freundliches 'Hallo' hier an die Gemeinschaft. Ich bin seit ein paar Wochen dabei mich mit C und C++ zu beschäftigen um ein kleines Programmierprojekt anzugehen und meine Programmierkenntnisse zu festigen.
Hauptsächlich soll dieses Projekt in C++ geschrieben werden, wegen der "einfacheren" Möglichkeiten dort eine grafische Oberfläche aufzusetzen (z.B. QT) und auf Grund der Effektivität. (außerdem habe ich dafür auch schon zwei Lehrbücher im Regal stehen ;)).Das zur kleinen Einführung und nun zum eigentlichen Problem:
Ich will die Sache langsam angehen, bzw. Stück für Stück um auch alles schön übersichtlich zu halten.1. Schritt:
Es sollen Informationen aus XML Dateien gelesen werden.2. Schritt:
Die Informationen sollen später in einer Datenstruktur gespeichert/geladen werden.Ich habe schon erste Programmierversuche für den ersten Schritt unternommen. Soweit klappt es auch mit dem Auslesen. Meiner Meinung nach nicht richtig!
Denn ich kam seltsamer Weise nicht dabei drumherum C++ mit C Header zu mischen. Das ist schlechter Stil wenn ich mich nicht irre? Hier soll es erstmal nicht darum gehen, wie man es nur in C++ lösen könne, sondern ob es Sinn macht diesen Teil meines Programms komplett in C zu schreiben.Klare Frage:
Macht es Sinn nur C zum auslesen von Dateien zu verwenden, bzw ist es Effektiver als C++? Hatte mal gelesen, dass man mit C effektiver mit *char arrays arbeiten kann (wo das war weiß ich gerade nicht, wenn ich es finde werde ich die Quelle nennen).Der 2. Schritt macht sich sicherlich besser in C++. Oder was meint ihr?
Macht es Sinn für ein Projekt verschiedene Aufgaben strikt in C und C++ zu trennen?
Würde mich über etwas Unterstützung in meinen Anfangsmomenten freuen und hoffe, dass ich hier auch im richtigen Unterforum gelandet bin.
-
Wenn du eh Qt nimmst, dann nimm doch QtXML zum auslesen.
-
ok danke erstmal.
An QT hatte ich mich bisher nicht rangewagt, weil ich dachte, dass ich erstmal ein Grundgerüst bauen müsste. Bin wie gesagt noch Anfänger in dem Bereich.So ich habe mich kurz schlau gemacht (Link und Lehrbuch["QT 4 - GUI-Entwicklung mit C++" von Jürgen Wolf) und habe mir einen kleinen Einblick verschafft. Wenn ich über QT rangehe, würde ich mir die Sache natürlich wesentlich einfacher machen. Aber dazu tun sich gleich die nächsten Fragen auf:
Wenn ich es richtig verstanden habe gibt es über QtXml 2 Möglichkeiten mit .xml-Dateien zu arbeiten.
1. über SAX (Simple API for XML)
nur zum auslesen und auswerten der Dateien
soll schneller sein als die zweite Variante2. über DOM (Document Object Model)
zum auslesen, bearbeiten und neuerstellen von .xml Dateien
soll komfortabler sein, dafür ist es auch ein bisschen Speicher und GeschwindigkeitshungrigerAlso für meine Pläne wäre dann die erste Variante zu empfehlen, wenn ich das richtig verstanden hab?
Jetzt habe ich nur bisschen mehr Aufwand und muss mich auch gleich in QT einarbeiten, aber gut
Aber um nochmal eine andere Frage von mir aufzugreifen:
Macht es Sinn manche Bereiche von Programmen in C zu schreiben und andere wiederum in C++? Mir fällt dafür leider gerade kein Beispiel ein. Wenn man es mir an nem kurzen Beispiel erklären könnte wäre ich erstmal wunschlos glücklich.
-
Zottel schrieb:
Aber um nochmal eine andere Frage von mir aufzugreifen:
Macht es Sinn manche Bereiche von Programmen in C zu schreiben und andere wiederum in C++? Mir fällt dafür leider gerade kein Beispiel ein. Wenn man es mir an nem kurzen Beispiel erklären könnte wäre ich erstmal wunschlos glücklich.Theoretisch sind beide Sprachen austauschbar. Dies gilt auch für große Teile der Praxis, trotzdem gibt es ein paar Ausnahmen. So wird im hardwarenahen Bereich oftmals C++ gemieden weil es evtl. einen Mangel an (ausreichend guten) C++-Compilern gibt oder in dem Bereich (Firma, Branche, ...) einfach noch klassisches C vorherrscht. Ebenso wird C in den wenigsten Fällen für große Anwendungssoftware (a la Office, etc.) genommen weil es halt irgendwann doch "a pain in the arse" wird.
Aber mach dir darüber nicht so viele Gedanken und vor allem glaub nicht die nächsten 25+ Seiten zu dem Thema unbedingt verfolgen zu müssen
-
Aber mach dir darüber nicht so viele Gedanken und vor allem glaub nicht die nächsten 25+ Seiten zu dem Thema unbedingt verfolgen zu müssen
hab ich jetzt etwa was philosophisches losgetreten?
Guuut, der Nebel lichtet sich so langsam und ich glaube ich habe es jetzt verstanden.
Ich denke, ich werde es so machen, dass ich erstmal versuchen werde eine Lösung für mich in C zu programmieren (um Übung zu kriegen) und später wenn ich sicherer in c und C++ bin werde ich es garantiert mit QT implementieren. Das wirkt auf mich im Moment noch ziemlich verwirrend. Aber mit bissl Zeit und Übung und etwas Hilfe kriege ich das schon hin.
Danke für die schnelle Hilfe