![]() |
Re: XML Eintrag löschen
Ach man :evil: es geht immer noch nich. Mit diesem Code...
Delphi-Quellcode:
...bekomme ich ne Zugriffsverletzung. :?: :?: :?: Muss ich das verstehen?
procedure Tfrm_planview_main.Image2Click(Sender: TObject);
var node, parentnode: IXMLDOMNode; id: integer; begin id:=lv_eintraege.Selected.Index; node :=xmlDoc.selectSingleNode('/PlanView/termin[terminid="'+IntToStr(id)+'"]'); parentnode := node.parentNode; parentnode.removeChild(node); xmlDoc.save(frm_planview_main.instpath + xmlfilename); frm_planview_main.UpdateList; frm_planview_main.lv_eintraege.AlphaSort; end; |
Re: XML Eintrag löschen
Delphi-Quellcode:
Ich denke mal, du hast keinen Node mit dieser id drinne. Besser schaust vorher ob node <> nil ist. Die Zufgriffsverletzung sollte zumindest weg sein.
procedure Tfrm_planview_main.Image2Click(Sender: TObject);
var node, parentnode: IXMLDOMNode; id: integer; begin id:=lv_eintraege.Selected.Index; node :=xmlDoc.selectSingleNode('/PlanView/termin[terminid="'+IntToStr(id)+'"]'); if node <> nil then begin parentnode := node.parentNode; parentnode.removeChild(node); xmlDoc.save(frm_planview_main.instpath + xmlfilename); frm_planview_main.UpdateList; frm_planview_main.lv_eintraege.AlphaSort; end; end; |
Re: XML Eintrag löschen
Ja, jetzt hab ich zwar keine Zugriffsverletzung mehr, aber den letzten Eintrag der XML Datei kann er nicht löschen. Ich vermute er bekommt irgendwie die falsche ID oder so!?
|
Re: XML Eintrag löschen
Ich würde auch vorher prüfen, ob der Knoten ungleich nil.
Aber hast du auch daran gedacht, dass Indexwerte wie Zitat:
|
Re: XML Eintrag löschen
@Mathias: ich habe weiter oben einen Auszug meiner XML Datei, könntest du dir das mal angucken. Und mir dann ma vielleicht beim Source helfen!?
|
Re: XML Eintrag löschen
Brauche ich nicht. Der Beispielcode, den Sanchez zuletzt gepostet hat, ist funktionsfähig. Zumindest klappte das bei mir in den Grundzügen: ich habe deinen XML-Code aus dem Browser kopiert und über einen Button-Klick den ersten Knoten entfernen lassen.
(Das spezielle, was sich auf die List-View bezieht, habe ich weggelassen.) ´s ging. Was mir noch einfällt, wäre, dass eben nicht der erwartete Index zurückgeliefert wird. Möglicherweise durch deine Sortierung der List-View. Vielleicht solltest du besser den Termineintrag überprüfen? Oder auf die Sortierung verzichten. |
Re: XML Eintrag löschen
:bounce1: Alles klar, jetzt funzt´s auch bei mir. Es lag an der Sortierung! THX für die Hilfe!!! :dancer:
:dp: Gruß, |
Re: XML Eintrag löschen [gelöst]
:roll: Hmm so ganz scheints doch nich gelöst zu sein. Ich wollt jetzt grad ma meinen Eintrag bearbeiten und bekomme ne Zugriffsverletzung.
Delphi-Quellcode:
Kann mir da jemand helfen? :oops:
procedure Tfrm_edit.bn_speichernClick(Sender: TObject);
var id: string; node: IXMLDOMNode; begin id := IntToStr(frm_terminplaner_main.lv_eintraege.SelCount); xmlDoc := frm_terminplaner_main.xmlDoc; node := xmlDoc.documentElement.selectSingleNode('/PlanView/termin[terminid="'+id+'"]'); node.selectSingleNode('terminbez').text:=ed_terminbez.Text;// Hier bekomme ich die Zugriffsverletzung angezeigt node.selectSingleNode('datum').text:=DateToStr(cb_von_datum.Date); node.selectSingleNode('uhrzeit').text:=ed_von_uhrzeit.Text; node.selectSingleNode('bemerkung').text:=ed_bemerkung.Text; xmlDoc.save(frm_terminplaner_main.instpath + xmlfilename); frm_terminplaner_main.xmlDoc:=xmlDoc; frm_terminplaner_main.UpdateList; end; |
Re: XML Eintrag löschen
hallo,
Ich würde auf alle Fälle (wie schon vorher mal beschrieben) auf node <> nil überprüfen bevor du drauf zugreifts. Ich schätze mal das wieder deine ID nicht in der File vorkommt. Diese Zeile
Delphi-Quellcode:
Schätze ich ohne das Programm zu sehen als Fehler ein.
id := IntToStr(frm_terminplaner_main.lv_eintraege.SelCount);
Am besten du setzt deine ID irgendwo ein dein Listview dazu rein (oder sonst wohin) und holst sie dir dann von dort raus. grüße, daniel |
Re: XML Eintrag löschen [gelöst]
Hm,
Zitat:
@Akut-Programming: Etwas mehr Sorgfalt bitte, und berücksichtige bitte den Tipp von Sanchez: Den Knoten auf <> NIL prüfen, bevor du darauf zugreifst! :roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz