Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Problem mit XML Datei (https://www.delphipraxis.net/10954-problem-mit-xml-datei.html)

Akut-Programming 29. Okt 2003 17:54

Re: Problem mit XML Datei
 
Ich gebs gleich auf... :wall: :wall: :wall: :wall: :wall: - Umgestellt -> Neue Zugriffsverletzung:
Delphi-Quellcode:
procedure Tfrm_main.FormCreate(Sender: TObject);
begin
  instpath:=ExtractFilePath(Application.ExeName);
  if not FileExists(xmlfilename) then FileCreate(xmlfilename);
  if FileExists(xmlfilename)
  then begin
    xmlDoc.load(xmlfilename)                 // Nu kommtse hier
    xmlDoc := CoDOMDocument40.Create;
    xmlDoc.setProperty('NewParser', true);
  end else xmldoc.loadXML('<?xml version="1.0" encoding="iso-8859-1"?><BuddLister/>');
end;

MathiasSimmack 29. Okt 2003 21:34

Re: Problem mit XML Datei
 
Du hast überhaupt nichts umgestellt. Es ist der gleiche Fehler. Noch ein letztes Mal zum Mitdenken, dann geb´ ich auf -

Du versuchst die Datei in das XML-Objekt "xmlDoc" zu laden,
Code:
[color=#ff0000]xmlDoc.load(xmlfilename)[/color]
aber erst danach erzeugst du es:
Delphi-Quellcode:
xmlDoc := CoDOMDocument40.Create;
xmlDoc.setProperty('NewParser', true);
:?
Meinst du wirklich, dass das so funktioniert?

Und selbst wenn du´s nun richtig herum machst, riskierst du den nächsten Fehler. Wenn die Datei nämlich nicht existiert, dann versuchst du XML-Code in ein nicht erzeugtes XML-Objekt zu schreiben:
Delphi-Quellcode:
if FileExists(xmlfilename)
then begin
  xmlDoc := CoDOMDocument40.Create;
end
// Datei existiert nicht!
else xmldoc.loadXML('<?xml version="1.0" encoding="iso-8859-1"?><BuddLister/>');
Bitte denk doch mal ein bisschen logisch.
Die Reihenfolge:
  1. XML-Objekt "xmlDoc" erzeugen
  2. prüfen, ob die Datei existiert
    1. wenn Ja, Datei laden
    2. wenn Nein, XML-Grundcode in das Objekt schreiben
  3. zur Sicherheit den geladenen XML-Code prüfen (zumindest den Namen des Root-Knotens)
  4. Wenn alles OK war, weiter im Programm ... im wahrsten Sinn des Wortes
Gruß.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 Uhr.
Seite 2 von 2     12   

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