![]() |
Re: Teilstring in Textdatei ändern
Zitat:
Dann schaust Du, was dann passiert. Anschliessend liesst Du die Hilfe zu der XML-Kompo. Vermutlich kannst Du dann auf sehr einfache Weise den 'DocumentName' ändern. Dann die Datei wieder mit der XML-Kompo speichern und feddisch. |
Re: Teilstring in Textdatei ändern
also doch XML...na das muss ich mal in Ruhe probieren...noch nie gemacht.
und wie gesagt...oldValue kenn ich doch nicht :-( |
Re: Teilstring in Textdatei ändern
Zitat:
Da kann man viele schöne Sachen damit machen. und vermutlich brauchst Du den oldValue nicht, da Du dich auf 'DocumentName' stürzen solltest. |
Re: Teilstring in Textdatei ändern
Hallo ihr Spaßvögel,
wenn oldValue nicht bekannt ist, dann schraubt man die Funktionalität einfach etwas zurück:
Delphi-Quellcode:
Einfach mal ausprobieren...
uses
XMLIntf, XMLDoc; function XMLChange(markup, ePath, aName, aValue: String): String; var doc: IXMLDocument; nl: IDOMNodeList; i: Integer; begin doc := LoadXMLData(markup); with doc.DOMDocument as IDOMNodeSelect do nl := SelectNodes(ePath); for i := 0 to Pred(nl.length) do with nl.item[i] as IDOMElement do setAttribute(aName, aValue); Result := doc.XML.Text; end; marabu |
Re: Teilstring in Textdatei ändern
Hallo marabu,
wie verwende ich nun diese Funktion? Was muss denn da nun bei markup, ePath, aName, aValue rein? Hab da irgendwas von Knoten usw. gelesen, blick aber noch nicht so richtig durch. Keinen Plan :-( Könntest du mir da mal ein Aufruf für mein Beispiel dazupacken, bitte? CU Bea |
Re: Teilstring in Textdatei ändern
Hallo Bea,
hilft dir das?
Delphi-Quellcode:
Freundliche Grüße vom marabu
with TStringList.Create do
begin LoadFromFile(ParamStr(1)); Memo.Text := XMLChange(Text, '//StoreProperties', 'DocumentName', 'Bea'); Free; end; |
Re: Teilstring in Textdatei ändern
Hallo marabu,
vielen Dank für deine Hilfe. :thumb: Habe mich die letzten Tage mal etwas mit XML beschäftigt und mir viele Beispiele aus dem Forum angeschaut und ausprobiert, um das ganze Thema verstehen zu lernen. ... werd ich aber noch viel üben müssen :gruebel: Mit dem Beispiel von Dir konnte ich meine Anfrage lösen, denke ich. Ich habe das jetzt so umgesetzt:
Delphi-Quellcode:
Könnte ich diese Funktion nun eigentlich auch (sicherlich etwas abgeändert) verwenden,
procedure TForm1.Button1Click(Sender: TObject);
var xmlDoc: IXMLDocument; xmlFile: string; bXMLChange: boolean; begin with TStringList.Create do begin xmlFile := 'C:\DOCU0001.001'; LoadFromFile(xmlFile); if XMLChangeAttribute(xmlFile, Text, '//StoreProperties', 'DocumentName', '123456789') then bXMLChange := true else bXMLChange := false; Free; end; end; function XMLChangeAttribute(sFile, markup, ePath, aName, aValue: string): boolean; var doc: IXMLDocument; nl: IDOMNodeList; i: Integer; begin Result := true; doc := LoadXMLData(markup); try with doc.DOMDocument as IDOMNodeSelect do nl := SelectNodes(ePath); for i := 0 to Pred(nl.length) do with nl.item[i] as IDOMElement do begin setAttribute(aName, aValue); doc.SaveToFile(sFile); end except Result := false; end; end; um Werte bestimmter Knoten zu ändern? Also nochmals vielen Dank CU Bea |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:12 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 by Thomas Breitkreuz