Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi XML Daten über RSS Feed aktualisieren - Laufzeitfehler (https://www.delphipraxis.net/82025-xml-daten-ueber-rss-feed-aktualisieren-laufzeitfehler.html)

Piro 6. Dez 2006 22:30


XML Daten über RSS Feed aktualisieren - Laufzeitfehler
 
Liste der Anhänge anzeigen (Anzahl: 1)
Schönen guten Abend,

der unten beschriebene Code lädt ein RSS News Feed von Stern.de und schreibt es ihn in ein Memo (Code gekürzt). Funktioniert einwandfrei. Wenn ich jetzt aber die Procedure erneut ausführe, z.B.: weil ich die News aktualisieren will, kann das XMLDoc den Stream nicht erneut einlesen. Siehe Screenshot. Kann mir einer sagen woran das liegt? Bin noch Anfänger auf dem XML Gebiet.

Delphi-Quellcode:
...
var
  idget: TIdHTTP;
  XMLNode, StartItemNode : IXMLNode;
  i : integer;
begin
 idget := TIdHTTP.Create( Application );
 data := TMemoryStream.Create;
 Memo1.Lines.Clear;
 try
   IdGet.Get('http://www.stern.de/standard/rss.php?channel=all', data );
   data.Seek(0, soFromBeginning);

   XMLDoc.LoadFromStream(data);
   XMLDoc.Active := True;
 ...
 finally
   idget.Free;
   data.Free;
   XMLDoc.Free;
 end;
end;
Schon mal danke im voraus. Sven

mkinzler 6. Dez 2006 22:35

Re: XML Daten über RSS Feed aktualisieren - Laufzeitfehler
 
Die Fehlermeldung weist darauf hin, daß mögicherweise auf eine nicht intantieertes Objekt zugegriffen wird

bernau 6. Dez 2006 23:35

Re: XML Daten über RSS Feed aktualisieren - Laufzeitfehler
 
Ich denke mal, das liegt am

Delphi-Quellcode:
XMLDoc.Free;
Du gibts XMLDoc in der Procedure frei, dort ist es aber nicht instanziert worden. Beim ersten Aufruf geht's gut, beim zweiten Aufruf greifst du ins leere. (Es sei denn, du hast XMLDoc kurz vorher wieder instanziert)


Gerd

Piro 7. Dez 2006 15:26

Re: XML Daten über RSS Feed aktualisieren - Laufzeitfehler
 
Wie müßte ich es den richtig instanzieren? Was meint ihr damit eigentlich?

Sorry für die Fragen.

Gruß, Sven

bernau 7. Dez 2006 17:21

Re: XML Daten über RSS Feed aktualisieren - Laufzeitfehler
 
Zitat:

Zitat von daywalker299
Wie müßte ich es den richtig instanzieren? Was meint ihr damit eigentlich?


Folgendes hast du instanziert:

Delphi-Quellcode:
idget := TIdHTTP.Create( Application );
data := TMemoryStream.Create;
Und auch wieder freigegeben.

Delphi-Quellcode:
idget.Free;
data.Free;
XMLDoc gibts du frei, ohne daß du es instanziert hat. Wurde wohl woanders instanziert. Dann ist as aber in der Regel nicht deine Aufgabe es freizugeben. Nimm einfach folgende Zeile heraus.

Delphi-Quellcode:
XMLDoc.Free;
Dann sollte auch der zweite Durchgang funktionieren.


Gerd

Piro 7. Dez 2006 18:53

Re: XML Daten über RSS Feed aktualisieren - Laufzeitfehler
 
cool, danke. schönen abend noch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:05 Uhr.

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