AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

VerySimpleXML: Problem unter iOS?

Ein Thema von romber · begonnen am 20. Dez 2013 · letzter Beitrag vom 26. Dez 2013
Antwort Antwort
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.167 Beiträge
 
Delphi 10 Seattle Professional
 
#1

AW: VerySimpleXML: Problem unter iOS?

  Alt 21. Dez 2013, 16:50
@cydo
Vielen Dank für die umfassende Hilfe an Sie und alle anderen.

Ich habe die Unit für den eigenen Bedarf auch ein wenig angepasst, indem ich die Text-Eingeschaft der Node und die Attribute-Value als Variant deklariert habe. So vermeide ich unnötige umwandlungen von String in Integer oder Boolean. Nur als Verbesserungsvorschag für die nächte Version.

Vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#2

AW: VerySimpleXML: Problem unter iOS?

  Alt 22. Dez 2013, 14:48
Das GetText ist eines der Engstellen (wenn auch die Größte) ... dieses hatte ich etwas abgeändert, so daß erst gesucht und dann der Text als ein Stück rauskopiert und gelöscht wird.
Das macht dann ein Insert+Delete pro Tag (jeweils von < bis >) und dann nochmal pro Part (die Einzelteile im Tag) und nicht mehr überall pro einzelnes Zeichen.
> siehe ExtractText ... umbenannt, da es den Text ausschneidet und nicht "nur" ausliest.

@Romber:
Eigentlich wäre es einfacher dort AsBool-, AsInt-, AsFloat-, AsDate-Property einzubauen, denn spätestens beim Float und TDateTime wird es "schlimm",
denn da nimmt der Variant die Systemeinstellungen.
- Beim Float das Dezimaltrennzeichen der aktuellen Sprache, aber eine XML ist Englisch und "muss" immer nur in einer Sprache sein, denn sonst schreibst du den Float in einer Sprache (z.B. Deutsch mit Komma als "Komma") und beim Auslesen in einer anderen Sprache (z.B. Englisch mit Punks als "Komma") da hast du dann deinen "Spaß".
- Und beim Datetime genauso, dort wird das Systemformat vom DateTimeToStr verwendet, was sich auch unterscheidet und eigentlich hat da XML sogar sein eigenes "Standard"-Format.
(bei meiner XML-Klasse hatte ich mir daher einen eigenen "Variant" gebastelt, aber hier soll es ja "Simple" sein )
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (22. Dez 2013 um 15:02 Uhr)
  Mit Zitat antworten Zitat
Insider2004
(Gast)

n/a Beiträge
 
#3

AW: VerySimpleXML: Problem unter iOS?

  Alt 22. Dez 2013, 15:57
Das GetText ist eines der Engstellen (wenn auch die Größte) ... dieses hatte ich etwas abgeändert, so daß erst gesucht und dann der Text als ein Stück rauskopiert und gelöscht wird.
Das macht dann ein Insert+Delete pro Tag (jeweils von < bis >) und dann nochmal pro Part (die Einzelteile im Tag) und nicht mehr überall pro einzelnes Zeichen.
> siehe ExtractText ... umbenannt, da es den Text ausschneidet und nicht "nur" ausliest.
Das ist immerhin besser, als die alte Lösung, da Insert und Delete sehr teuer sind.

Vielleicht wäre es auch einfacher, den einen Monster-string beim Laden einfach in mehrere kleine von z.b. 200er Länge zu zerhacken. Der Algo sollte das trotzdem fressen, da ja die nächste Line nachgeladen wird, wenn die alte abgearbeitet ist.
  Mit Zitat antworten Zitat
Insider2004
(Gast)

n/a Beiträge
 
#4

AW: VerySimpleXML: Problem unter iOS?

  Alt 22. Dez 2013, 16:07
Performed nicht schlecht bis jetzt:

XML file: ~220 KB

read write
MSDOM 2.5 18.6
ADOM 10.5 35.3
OmniXMLKluug 3.3 5.0
VerySimpleXML 1.0 1.0
AlcinoeXML Error

normiert, kleiner ist schneller.
  Mit Zitat antworten Zitat
creed steiger

Registriert seit: 2. Dez 2009
116 Beiträge
 
#5

AW: VerySimpleXML: Problem unter iOS?

  Alt 22. Dez 2013, 17:23
nativxml könnte man noch benchmarken


https://code.google.com/p/simdesign/...ib%2Fnativexml

http://www.simdesign.nl/xml.html
  Mit Zitat antworten Zitat
Insider2004
(Gast)

n/a Beiträge
 
#6

AW: VerySimpleXML: Problem unter iOS?

  Alt 22. Dez 2013, 17:31
Geht nicht. NativeXML ist völlig inkompatibel zu TXMLDocument.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#7

AW: VerySimpleXML: Problem unter iOS?

  Alt 22. Dez 2013, 18:25
Hier im Forum suchenhimXML ... in dem einem Unterverzeichnis liegen noch ein paar XML-Klassen anderer Entwickler.

Die "aktuellen" Version von himXML sind aber bis maximal D2006/TDE abwärskompatibel und das wird sich auch nicht ändern, da es einfach zu viel Aufwand ist, wenn man noch eine ordentliche Code-Struktur und nette RTL&Compiler-Features nutzen möchte.
Eine der Älteren bis D7 (ich glaub jemand verwendete die auch in D5).


Vielleicht wäre es auch einfacher, den einen Monster-string beim Laden einfach in mehrere kleine von z.b. 200er Länge zu zerhacken. Der Algo sollte das trotzdem fressen, da ja die nächste Line nachgeladen wird, wenn die alte abgearbeitet ist.
Du hast eigentlich Recht, das könnte man.
Delphi-Quellcode:
  // splitt long lines
  I := 0;
  while I < Lines.Count do
  begin
    if Length(Lines[I]) > 10000 then
    begin
      Lines.Insert(I + 1, Copy(Lines[I], 10000 + Low(string)));
      Lines[I] := LeftStr(Lines[I], 10000);
    end;
    Inc(i);
  end;

  for I := 0 to Lines.Count - 1 do
  ...
Angehängte Dateien
Dateityp: 7z VerySimpleXML.7z (10,0 KB, 7x aufgerufen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Dez 2013 um 00:11 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 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