Thema: Delphi array als xml speichern

Einzelnen Beitrag anzeigen

schwarzer_kaffee

Registriert seit: 2. Okt 2008
5 Beiträge
 
#7

Re: array als xml speichern

  Alt 5. Okt 2008, 10:23
hi

vielen dank für deine hilfe.
leider hat dein array, so wie es da steht, nicht funtkioniert. allerdings habe ich so ganz gut verstanden wie man eine xml datei aufbaut.
ich habe dein code mal als vorlage benutzt und dann so weit rumexperimentiert, bis ich immerhin schon mal die punkte aus dem koordinatenarray speichern kann ^^

das sieht im moment so aus:

Delphi-Quellcode:
  procedure TForm1.Button1Click(Sender: TObject );
var
    id ,id2,x:integer ;
  xmldocument1: txmldocument;linienid,punktid, xwerte2,linien,von,bis,xwerte, ywerte, element, element2, element3, punkte:ixmlnode;

  begin
    id:=1;
    id2:=0;
    xmldocument1:=txmldocument.Create(nil);
    xmldocument1.Active:=true;

   element:= xmldocument1.addChild('array2xml');
   element.Attributes['app']:= paramstr(0);
   element2:=element.addChild('Koordinaten');
   element2.attributes['aus'] := 'Koordinatenarray';
      while id<11 do
      begin
        punkte:=element2.addchild('ein_punkt');
// punkte.Attributes['nr'] := inttostr(id);
        punktid:=punkte.addchild('id');
        punktid.text:= inttostr(id);
        xwerte:=punkte.addChild('x');
        xwerte.Text:=inttostr(koordinatenarray[id,1]);
// xwerte.attributes['x'+inttostr(id)] := koordinatenarray[id,1];
        ywerte:=punkte.addchild('y');
        ywerte.Text:=inttostr(koordinatenarray[id,2]);
// ywerte.attributes['y'+inttostr(id)]:= koordinatenarray[id,2];
        id:=id+1;
      end;
    element3:=element.addchild('Linien');
    element3.attributes['aus']:= 'Linienarray';
      while id2<11 do
      begin

         linien:=element3.addchild('eine_Linie');
// linien.Attributes['Nr.'] := inttostr(id2+1);
         linienid:=linien.addchild('id');
         linienid.Text:= inttostr(id2+1);
         von:=linien.addChild('von');
         von.Text:=inttostr(linienarray[id2,3,1]);
// von.attributes['punkt'+inttostr(id2)] := linienarray[id2,3,1];
         bis:=linien.addchild('bis');
         bis.Text:=inttostr(linienarray[id2,3,2] );
// bis.attributes['punkt'+inttostr(id2)]:= linienarray[id2,3,2];
         id2:=id2+1;
      end;

   XMLdocument1.savetofile(changefileext(ParamStr(0), '.xml'));
   xmldocument1:=nil;


end;

damit wären die daten aus dem array in der xml datei gespeichert.
wie bekomme ich die daten aus der xml datei jetzt wieder zurück in die arrays?
  Mit Zitat antworten Zitat