Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

24.09.2011, 17:45

Xml macht Sinn, sobald man hierarchische Daten hat. Ansonsten kann man auch einfach ini-Dateien nehmen oder ein eigenes Textdateiformat definieren, wenn man nicht so viele Features braucht.
Textdateien sind halt größer, können aber auch "per Hand" editiert werden und man kann Fehler besser erkennen. Außerdem hat man in der Regel keine Probleme mit unterschiedlichen Binärdarstellungen (Reihenfolge und Anzahl an Bits für ein Int, z.B.) auf verschiedenen Plattformen.
Nachteil ist natürlich, dass sie etwas größer sind und damit komplexer zu verarbeiten. Und für manche Dinge eignen sie sich einfach schlecht, z.B. um Bilddateien zu speichern.

Und ja: VOn tinyXml ist dringend abzuraten, weil ticpp einfach moderner und robuster ist. Kannst natürlich auch einen der vielen anderen Xml Parser benutzen.
Lieber dumm fragen, als dumm bleiben!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

12

24.09.2011, 18:18

@Fred: danke für den Tipp :) sieht gut aus.

idontknow

unregistriert

13

24.09.2011, 18:46

Ich benutz tinyxml und bin ganz glücklich damit und vor allem froh, dass ichs mittlerweile raus habe wie das überhaupt funktioniert. Hatte anfangs zudem Probleme mit einbinden der lib die mich fast an den Rand der Verzweiflung gebracht haben :D

MCP

Alter Hase

Beiträge: 513

Wohnort: Paderborn

Beruf: Software-Entwickler

  • Private Nachricht senden

14

24.09.2011, 21:56

Xml macht Sinn, sobald man hierarchische Daten hat. Ansonsten kann man auch einfach ini-Dateien nehmen oder ein eigenes Textdateiformat definieren, wenn man nicht so viele Features braucht.
Textdateien sind halt größer, können aber auch "per Hand" editiert werden und man kann Fehler besser erkennen. Außerdem hat man in der Regel keine Probleme mit unterschiedlichen Binärdarstellungen (Reihenfolge und Anzahl an Bits für ein Int, z.B.) auf verschiedenen Plattformen.

Das klingt fast so, als wären XML-Dateien keine Textdateien. ;)
Man kann auch in XML-Dateien hervorragend Bilddateien speichern. Base 64 ist da das Stichwort.

Der Tipp mit TiCpp ist Klasse! Danke! :)

15

25.09.2011, 01:23

Ja klar, man kann ein Xml-Node machen mit einer riesig langen Zeichenkette, die dann halt Base64 oder sonstwie kodiert ist. Aber mal ehrlich, ist das noch eine Xml Datei? Ich meine, es ist natürlich sinnvoll, kleiner Binärdatensätze so in eine XML-Datei einzubetten, aber sobald der Anteil an Binärdaten zu groß wird sollte man das ganze IMO noch einmal hinterfragen.

Achja: Man ist bei XML natürlich nicht auf normale Textdateien beschränkt (obwohl das wohl die Regel ist), sondern kann sie auch zum Beispiel in zip.Archive packen (so wie odt das macht, zum Beispiel). Dann hat man trotzdem relativ kompakte Dateien, nur das auslesen ist natürlich minimal langsamer, sonstige Vorteile wie die Robustheit bleiben aber weiterhin bestehen. Und man kann so etwas mit geeigneter Abstraktion natürlich sehr leicht ein/ausschalten.
Lieber dumm fragen, als dumm bleiben!

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

16

25.09.2011, 15:59

XML Vorteil wird auch schnell mal zum Nachteil. Bei XML kann das Verhältnis "eigentliche Information" zu "Overhead" ganz schnell sehr ungünstig werden. Vorallem rate ich aus persönlicher Erfahrung davon ab relationale Datensätze in XML verwalten zu wollen. Eine mögliche Alternative zu XML wo das Verhältnis Information:Overhead deutlich besser ist, ohne dass die Übersichtlichkeit deutlich leidet, ist json.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

17

25.09.2011, 16:14

Moment mal!

Quellcode

1
int main(int argv, char* argc[])

argv gibt die Größe des Arrays von argc an, oder so ähnlich.
Der erste wert von argc ist doch immer der Programmname. Wäre dann der 2. Parameter eine besagte Datei die mit meinem Programm geöffnet wurde?
Was machen eigentlich die Anderen? Sagen die: Programm wurde mit X vielen Dateien zusammen geöffnet? :D

MfG
Check

valentin

Treue Seele

Beiträge: 212

Wohnort: Schweiz

Beruf: Schüler

  • Private Nachricht senden

18

25.09.2011, 16:24

[...]
Was machen eigentlich die Anderen? Sagen die: Programm wurde mit X vielen Dateien zusammen geöffnet? :D [...]


z.B. Photoshop kannst du mit mehreren Dateien gleichzeitig öffnen, die du dann alle bearbeiten kannst. So musst du nicht jede Datei einzeln öffnen...
visit me on deviantArt!
http://v-alentin.deviantart.com/

There is no programming language, no matter how structured, that will prevent programmers from making bad programs. //Larry Flon

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

19

25.09.2011, 16:29

int main(int argc, char* argv[]) heißt das.

argc gibt an, wie viele Elemente argv hat. argv[0] ist immer der Pfad, wo sich das Programm selbst befindet und argv[1] ist der Pfad zur Datei, falls eine Datei mit dem Programm geöffnet werden soll.

20

25.09.2011, 16:58

jep, denn das c bei argc steht für counter, also argument counter, und das v bei argv für value -> argument values

Werbeanzeige