Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Zugrifstverletzung, xml .-. (https://www.delphipraxis.net/74162-zugrifstverletzung-xml.html)

.echo 29. Jul 2006 12:55


Zugrifstverletzung, xml .-.
 
Also ich hab da was zusammengebaut, jedoch jedesmal wenn ich es ausführe kommen alle hand an zugriffsverletzungen und es klappt nicht.
hier ist mal der teil des codes.
Würde mich über schnelle antworten freuen.
~.echo
Delphi-Quellcode:
   
{...}
XMLDoc.FileName := 'dateiname';
    XMLDoc.Active:=True;


    SIN:=XMLDoc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('player');
    ANE := SIN;
    repeat
     sname := ANE.ChildNodes['name'].Text;
     srace := ANE.ChildNodes['race'].Text;
     sclass := ANE.ChildNodes['class'].Text;
     slevel := ANE.ChildNodes['level'].Text;


      with form2.listview1.Items.Add do
      begin
      caption:=sname;
      SubItems.Add(srace);
      SubItems.Add(sclass);
      SubItems.Add(slevel);
      end;

      ANE := ANE.NextSibling;
    until ANE = nil;

marabu 29. Jul 2006 13:22

Re: Zugrifstverletzung, xml .-.
 
Hallo,

dein Programm kommt wahrscheinlich mit den angebotenen Daten nicht zurecht. Schade, dass du keine Beispieldaten mitgegeben hast.

Grüße vom marabu

.echo 29. Jul 2006 13:34

Re: Zugrifstverletzung, xml .-.
 
DAnke erstmal für die antwort,
hilft mir leider noch nicht sehr viel weiter.
Also die daten die es verwerten soll sind diese hier:
http://www.orangeheaven.de/stat.xml (ziel speichern unter um die datei zu haben)
~.echo

marabu 29. Jul 2006 14:00

Re: Zugrifstverletzung, xml .-.
 
Schau mal:

Code:
documentElement = stats
documentElement.childNodes.First = server
documentElement.childNodes.First.childNodes = (version, owner, servername, uptime)
Wenn du da player suchst, dann suchst du an der falschen Stelle. So könnte es besser funktionieren:

Delphi-Quellcode:
begin
  // ...
  SIN := XMLDoc.DocumentElement.FindNode('players');
  ANE := SIN.childNodes.First;
  repeat
    // ...
marabu

.echo 29. Jul 2006 14:03

Re: Zugrifstverletzung, xml .-.
 
Also,
Delphi-Quellcode:
  ANE := SIN.First;
Was soll das bewirken, zumindest scheint der teil nicht ganz richtig zu sein.
Das wird bei mir gleich als fehler markiert.
~.echo

xaromz 29. Jul 2006 14:05

Re: Zugrifstverletzung, xml .-.
 
Hallo,

alternativ wäre XPath auch geeignet.
Hier mal mit MSXML6:
Delphi-Quellcode:
var
  XML: IXMLDOMDocument3;
  Nodes: IXMLDOMNodeList;
  C: Integer;
begin
  XML := CoDOMDocument60.Create; // Dokument erzeugen

  if XML.load('stat.xml') then // Datei laden
  begin
    Nodes := XML.documentElement.selectNodes('players/player'); // Nodes wählen

    for C := 0 to Nodes.length - 1 do
      ListBox1.Items.Add(Nodes[C].childNodes[0].text); // Spielernamen in Listbox ausgeben
  end;
end;
Gruß
xaromz

.echo 29. Jul 2006 14:12

Re: Zugrifstverletzung, xml .-.
 
Danke erstmal,
Da blick ich jetzt noch nicht so ganz durch, verwende xml zum ersten mal, daher muss ich mich da erst etwas einarbeiten.
~.echo

marabu 29. Jul 2006 14:34

Re: Zugrifstverletzung, xml .-.
 
Zitat:

Zitat von .echo
Delphi-Quellcode:
  ANE := SIN.First;
Das wird bei mir gleich als fehler markiert.

Ein Schreibfehler von mir - es muss natürlich so aussehen:

Delphi-Quellcode:
ANE := SIN.childNodes.First;
while Assigned(ANE) do
begin
  // ...
  ANE := ANE.NextSibling;
end;
marabu

.echo 29. Jul 2006 14:46

Re: Zugrifstverletzung, xml .-.
 
ALso nochmal danke für die idee,
aber scheint bei mir immernoch nicht zu klappen,
kommt immernoch ie eh und je eine zugriffsverletzung.
Könnte es an etwas anderes liegen=?

Also das program is folgendermaßen aufgebaut.

1. Download der xml (funktioniert)
2. Auslesen der xml (funktioniert nicht)
3. Löschen der xml (funktioniert)

Delphi-Quellcode:
var  
{...}
SIN : IXMLNode;
  ANE : IXMLNode;
   Sname, srace, sclass, slevel: WideString;
begin
{download der file}
{code von oben}
Also der fehler müsste in diesem teil liegen, da ich andere dinge schon in {} gesetzt habe die nicht unmittelbar beteiligt sind.
Delphi-Quellcode:
    XMLDoc.FileName := 'Dateiname';
    XMLDoc.Active:=True;

     SIN:=XMLDoc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('players');
    ANE := SIN;
      repeat
     sname := ANE.ChildNodes['name'].Text;
     srace := ANE.ChildNodes['race'].Text;
     sclass := ANE.ChildNodes['class'].Text;
     slevel := ANE.ChildNodes['level'].Text;

      ANE := ANE.NextSibling;

    until ANE = nil;

marabu 29. Jul 2006 15:06

Re: Zugrifstverletzung, xml .-.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Schau dir mal den Code an.

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:38 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz