Einzelnen Beitrag anzeigen

Freyr77
(Gast)

n/a Beiträge
 
#1

XML : Zeile überschreiben -> schreibt komplette Datei neu

  Alt 11. Nov 2016, 15:44
Delphi-Version: 10 Seattle
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?
  Mit Zitat antworten Zitat