Forum: Cross-Platform-Entwicklung
by Union,
20. Dez 2013
Das Beste ist ja der Debugger: Line kann man dort nicht auswerten, im iOS-Code aber doch. Dadruch kann man NextGen-Programm nicht mehr debuggen bis man dem Debugger mitteilen kann, dass 0-Based strings verwendet werden.
Forum: Cross-Platform-Entwicklung
by Union,
20. Dez 2013
Das ist wohl ein Fehler in system. Die Schleife wird einmal durchlaufen und das delete wird durchgeführt. Dann wird die Abfrage true. Nach Verlassen der Schleife ist jedoch noch eine Leerstelle am Anfang von Line.
Forum: Cross-Platform-Entwicklung
by Union,
20. Dez 2013
Bei mir XE5. Schau mal das debug im Bild. Du siehst dass in S bereits " </Z" steht und IsSelfClosing auf True gesetzt wurde. Dadurch wird dann ein weiteres " /" angehängt. Passiert im GetText in der 12. Recursion von Walk().
Forum: Cross-Platform-Entwicklung
by Union,
20. Dez 2013
Das Problem liegt wohl in der Verarbeitung der letzten Verschachtelungsebene:
IsSelfClosing := (Length(Node.Text) = 0) and (Node.ChildNodes.Count = 0)
Das ergibt immer true, da auf Node.Text abgefragt wird - der ist ja bei einem schließenden Tag in dem Fall immer leer. Es sollte zusätzlich Node.Parent.Text überprüft werden um das Flag zu setzen.
Forum: Cross-Platform-Entwicklung
by Union,
20. Dez 2013
Ich kann den Fehler mit folgendem Code reproduzieren:
const
Filename = 'verysimplexml.xml';
var
XMLFile : string;
XMLObj : TXmlVerySimple;
begin
XMLFile := TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+FileName;
if not FileExists(XMLFile) then
ShowMessage('Datei existiert nicht')
Forum: Cross-Platform-Entwicklung
by Union,
20. Dez 2013
Wie erhältst Du die Ausgabe? Bitte mal Demo Source posten.