Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   XML Endtag finden (https://www.delphipraxis.net/197651-xml-endtag-finden.html)

Pader1305 24. Aug 2018 13:56

AW: XML Endtag finden
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1411559)
Bin mal naiv:

Datei in 'ne Stringliste laden und ein bisserl anpassen, ungefähr sinngemäß sowas:
Delphi-Quellcode:
var
  sl : TStringList;
begin
  sl := TStringList.Create;
  sl.LoadFromFile(FILEPATH);
  sl.Insert(1,'<reparaturtag>');
  sl.Add('</reparaturtag>');
  sl.SaveToFile(FILEPATH);
  sl.Free;
Sinnvoller wäre es, beim "Lieferanten" die Erstellung einer syntaktisch korrekten Datei einzufordern.


Das ist auch ein Lösungsvorschlag. Ich werde das mal durchsprechen, aber ein großes Dankeschön schonmal!:)

Delphi.Narium 24. Aug 2018 13:57

AW: XML Endtag finden
 
Wenn ich die Aufgabenstellung recht verstanden habe, muss bei den Dir vorliegenden Dateien immer in die vorletzte Zeile was eingefügt werden:
Delphi-Quellcode:
var
  sl : TStringList;
begin
  sl := TStringList.Create;
  sl.LoadFromFile(FILEPATH);
  sl.Insert(sl.Count - 1,'<myTag>irgendein Inhalt</myTag>');
  sl.SaveToFile(FILEPATH);
  sl.Free;
end;

Pader1305 27. Aug 2018 12:39

AW: XML Endtag finden
 
Hallo nochmal,
Ich habe den folgenden Code nun verwendet, kann leider aber nicht überprüfen, ob er funktioniert

Delphi-Quellcode:

var
   lStringListDatei : TStringList;
   
    begin
      lStringListDatei.Encoding.UTF8;
      lStringListDatei.LoadFromFile(lConfig.getXMLDatabase, TEncoding.UTF8);
      lStringListDatei.Insert(1,'<test>');
      lStringListDatei.Add('</test>');
      lStringListDatei.SaveToFile(lConfig.getXMLDatabase, TEncoding.UTF8);

    end;
Ich bekomme nur eine 'access violation at 0x004b7038: write of Adress': Fehlermeldung und werde dort hin verwiesen mit einer Markierung in die FDefaultEncoding Zeile.
Delphi-Quellcode:
{ TStrings }

constructor TStrings.Create;
begin
  inherited Create;
  FDefaultEncoding := TEncoding.Default;
  FLineBreak := sLineBreak;
  FDelimiter := ',';
  FQuoteChar := '"';
  FNameValueSeparator := '=';
  FOptions := [soWriteBOM, soTrailingLineBreak, soUseLocale];
end;

Delphi.Narium 27. Aug 2018 12:46

AW: XML Endtag finden
 
Du musst lStringListDatei erstellen und wieder freigeben.
Delphi-Quellcode:
begin
  lStringListDatei := TStringlist.Create;
  // dein Code
  lStringListDatei.Free;
end;


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

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