Delphi-Quellcode:
var
lNodeHelper: TNodeHelper;
lXMLDocument: IXMLDocument;
lTmpNode: IXMLNode;
lTmpOutput: string;
iCounter: integer;
lnewProductVersion: string;
lChkBox: TGridCheckbox;
begin
if MessageDlg
('Die veränderten Daten werden fest gespeichert, wollen Sie fortfahren?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
for iCounter := 1 to fProjectListItems.Count do
begin
lChkBox := gridDataSet.Objects[PROJ_CHECKBOXES, iCounter]
AS TGridCheckbox;
if Assigned(lChkBox) AND lChkBox.Checked then
begin
lNodeHelper := gridDataSet.Objects[PROJ_NODEHELPER, iCounter]
AS TNodeHelper;
lXMLDocument := lNodeHelper.FDocument;
lTmpNode := lNodeHelper.FNode;
lTmpOutput := lTmpNode.NodeValue;
lnewProductVersion := XMLHandle.getNewProductVersion('ProductVersion',
lTmpOutput, gridDataSet, iCounter);
lTmpNode.NodeValue := XMLHandle.getNewFileVersion('FileVersion',
lnewProductVersion, gridDataSet, iCounter);
lXMLDocument.SaveToFile(fProjectListItems[iCounter - 1]);
end;
end;
end
else
Exit;
ShowMessage('Die Änderungen wurden erfolgreich übernommen.');
end;
Ich möchte mit diesem Code XMLs von .pas-Dateien überschreiben. Und zwar nur eine bestimmte Zeile mit einem bestimmten Knoten(<>blablabla</> - sowas..). Dort werden über das Programm die Datei- und Produktversionen aktualisiert. Das funktioniert auch alles wie es soll.
Wenn ich allerdings in Git Extensions auf die Änderungen schau, ist der komplette Text ersetzt worden. Zwar stimmt trotzdem was eingetragen wurde, es ist aber nicht gewollt das der Code immer die komplette Datei überschreibt.
Weiß jemand zufällig woran das liegen kann?