Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#5

Re: Unterschiedliche Record-Strukturen in XML speichern

  Alt 18. Apr 2004, 16:48
Zitat von Luckie:
Ich meine,w enn ich bei meiner Freundin bin lad ich mir die aktuelle Version runter. Kann sie editieren und wieder hochladen. Zu hause kann ich sie dann wieder unterladen und habe wieder lokal eine aktuelle Version. Ob ich mir da was mit FTP baue, mal sehen. Soweit bin ich ja noch gar nicht.
Ja, aber das wirst du schätzungsweise mit FTP machen müssen, denn der Server "weiß" ja nicht, dass dein Programm, mit dem du die XML-Datei lädtst, auch theoretisch (wenn du es bedienst!) die Berechtigung hat, die Datei dort auch wieder zu speichern.

Zitat:
Ich würde als Rootnode die Bezeichnung "Kontakt" wählen. Der erste Subnode wäre dann der Record mit dem XML-Dateiinfos und alle weiteren Subnodes wären die Kontakte.
Wie gesagt: Das liegt bei dir. Denk dir was aus! Wobei sich die Datei-Infos IMHO kürzen lassen. Die Versionsdaten und Zeit/Datum, das kann man sicher speichern. Aber diese beiden hier:
Zitat:
Delphi-Quellcode:
type
  TXMLFile = record
     { ... }

     FNextRecordID: Cardinal;
     FRecordCount: Cardinal;
  end;
halte ich in der XML-Datei für überflüssig. Eine ID brauchst du nicht, denn jeder Knoten mit den Adressdaten wäre ein eigenes Objekt und ließe bspw. mit XPath über irgendeinen Wert (Name, Telefon-Nr. usw.) finden (grob vereinfacht gesagt: wie in einer Datenbank). Und die Anzahl der Knoten erhältst du bspw. durch die o.g. Anweisung und die Ergänzung
ShowMessage(inttostr(kontakte.length));
Zitat:
Ich denke mit Records kann ich Programm intern besser arbeiten.
Nicht böse sein, aber das nimmt sich nichts. Es sei denn, du willst das XML-Objekt nach dem Laden und Lesen der Daten wieder freigeben. Wenn du es aber ohnehin im Speicher hast bzw. behältst, dann kannst du auch direkt auf die Knoten zugreifen.

Edit: Und gerade wenn du vielleicht einen neuen Kontakt einfügen willst (vor einem anderen), geht das mit dem XML-Objekt viel einfacher als die Records im RAM umzusortieren.
  Mit Zitat antworten Zitat