Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#5

Re: Mehrere Stringlisten/Bilder in eine Datei

  Alt 21. Apr 2007, 14:37
Hi,
also erstmal zum Thema "einfachstes Format", so etwas wird es imho nicht geben. Liegt nur daran, dass einfach viel zu relativ ist (gibt bestimmt Menschen die finden XML einfach).
An sich empfiehlt es sich, wenn Du Auszeichnungen/Tags verwendest. Diese markieren eine bestimmte Stelle und treffen eine Aussage über den Inhalt. Das hat den Vorteil, dass die Reihenfolge der Tags und deren Anzahl beliebig sind. Findest Du ein Tag, dass Du nicht kennst, dann ignorierst Du es einfach.
Sowohl Ini-Dateien als auch XML folgen dem Prinzip. Bei einer Ini-Datei gibt es Auszeichnungen einer Sektion ([SektionsName]) und untergeordneter Schlüssel-Wertpaare. Die Größenbeschränkung bei Ini-Dateien lässt sich durch andere Units als IniFiles umgehen, such einfach mal nach Hier im Forum suchenBiginiFile (oder so ähnlich).
Bei XML geht die Strukturierung nur etwas weiter. Hier gibt es Tags, die durch spitze Klammern angezeigt werden. Innerhalb dieses Tags steht dann irgendein String, das ganze wird dann als öffnendes Tag bezeichnet. Zu jedem öffnenden Tag gehört auch immer ein schließendes Tag. Dieses sieht eigentlich aus, wie das öffnende, nur dass ein / vor den Namen gesetzt wird
Code:
<Tag>
  ...
</Tag>
Alles was zwischen dem öffnenden und schließenden Tag steht, ist diesem einen Tag untergeordnet. Man betrachtet ein XML-Dokument i.d.R. als ein Baum. Jedes Tag stellt dabei einen Knoten dar. Für Filme könntest Du z.B. einen Baum folgender Form haben:
Code:
Filme
  - Film1 
    - Jahr xxx
    - Genre xxxx
    - Regie
      - Person A
      - Person B
      - Person C
    - Inhalt bla
  - Film2 
   - Jahr xxxx
   - Genre xxx
   - Regie
      - Person A
    - Inhalt bla
....
(erinnert vielleicht ein wenig an den Dateibaum, den Dir der Explorer anzeigt, nur hier für Filme )

Das ganze kannst Du dann entsprechend in XML umsetzen:
Code:
<Filme>
  <Film>
   <Name>
     1
   </Name>
   <Jahr>
     xxxx
   </Jahr>
   <Genre>
     xxxx
   </Genre>
   <Regie>
     <Person>
        <Name> Blubb </Name>
        <Vorname> Blä </Name>
     </Person>
     <Person>
        <Vorname> Foo </Name>
        <Name> Bar </Name>
     </Person>
   </Regie>
  </Film>
</Filme>
Gut, ist nicht die 100%ige Entsprechung, aber die Idee dürfte klar sein. Dass ich im letzten Beispiel jetzt Person noch in Name und Nachname unterteile soll nur zeigen, dass Du hier nicht in der Strukturierung beschränkt bist. Zudem steht es Dir frei, ob Du das schließende Tag in die gleiche Zeile oder in eine beliebige andere schreibst. Wichtig ist nur, dass alles was zwischen dem öffnenden und schließenden Tag steht diesem Tag zugeordnet wird.
Eine weitere wichtige Regel für XML ist dann noch, dass Du nur einen Wurzelknoten hast (hier wäre das Filme). Mehrere Knoten sollten auf dieser Ebene (also nach </Filme>) nicht vorhanden sein.
Das wäre (vereinfacht) schon alles, was für XML wichtig ist. Es gibt noch jede Menge Dinge rund um XML, wie Namensräume, Transformationen, Schemata und DTD, die sind aber hier noch nicht wichtig.
Zudem können XML-Dateien auf den ersten Blick etwas abschreckend wirken, davon solltest Du Dich aber nicht einschüchtern lassen. XML ist ein wirklich einfaches Format! Eine Datei, in der Form der hier geposteten könntest Du so an einen XML-Parser geben, der daraus dann einfach einen Baum für Dich erzeugt.
Du hättest jetzt die Wurzel (Filme). Hier kannst Du abfragen, was zwischen dem öffnenden und schließenden Tag steht (sowohl roher Text als auch Kindtags), sowie das aktuelle Tag heißt. In diesem Fall wäre nur ein Kindtag zu finden. Dieses ist wiederum die Wurzel eines Teilbaums, Du kannst also ganz analog vorgehen.
Du würdest also als erstes das Tag Filme bekommen. Dem ist das Tag Film untergeordnet
Das Tag Film hat nun die Kindtags Name, Jahr, Genre, Regie.
Jetzt kannst Du diese Tags nacheinander durchgehen:
Das Tag Name enthält den String 1
Das Tag Jahr enthält den String xxxx
Das Tag Genre enthält den String xxxx
Das Tag Regie enthält die Kindtags Person und Person
...

Gruß Der Unwissende
  Mit Zitat antworten Zitat