Delphi-PRAXiS
Seite 32 von 35   « Erste     22303132 3334     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   himXML (gesprochen himix ML) (https://www.delphipraxis.net/130751-himxml-gesprochen-himix-ml.html)

Dawn87 1. Nov 2016 10:35

AW: himXML (gesprochen himix ML)
 
Zitat:

Zitat von RWarnecke (Beitrag 1352280)
Zitat:

Zitat von Dawn87 (Beitrag 1352264)
Wie steht es um diesen eigentlich wunderbaren XML-Parser?

Ich habe gerade versucht den in meine Anwendung (XE5, 64-Bit) einzubinden, aber er steigt beim Kompilieren aus, da Assemblercode verwendet wurde. Gibt es eine aktuellere Version als über den hier zu findenden Link angeboten oder nimmt man heutzutage besser einen anderen XML-Parser?

Beste Grüße

Wenn ich es noch richtig weiß, kannst Du den Assembler Code austauschen gegen ganz normalen Delphi Quelltext. Dann funktioniert himXML mit 64Bit. Ich müsste heute Abend mal nachschauen, vielleicht habe ich noch irgendwo eine 64Bit Version von himXML.

Wenn Du Gelegenheit hast zu schauen, ob Du eine angepasste Version hast, wäre ich Dir sehr dankbar. OXml werde ich mir aber auch einmal ansehen.

RWarnecke 1. Nov 2016 10:57

AW: himXML (gesprochen himix ML)
 
Ich war damals sehr pragmatisch und habe den Teil mit dem Assembler Code folgendermaßen abgeändert :

Delphi-Quellcode:
  {$IFDEF Win32}
    Class Function TXHelper.Pos(Const Sub, S: TWideString): Integer;
      ASM
        PUSH   EBX
        PUSH   ESI
        PUSH   EDI
        TEST   EDX, EDX
        JE     @@Zero
        TEST   ECX, ECX
        JE     @@Zero
        MOV    ESI, EDX
        MOV    EDI, ECX
        MOV    ECX, [EDI-4]
        {$IFDEF hxDisableUnicodeString}
          SHR  ECX, 1
        {$ENDIF}
        MOV    EDX, [ESI-4]
        {$IFDEF hxDisableUnicodeString}
          SHR  EDX, 1
        {$ENDIF}
        DEC    EDX
        JS     @@Zero
        MOV    AX, [ESI]
        ADD    ESI, 2
        SUB    ECX, EDX
        JLE    @@Zero
        PUSH   EDI

        @@Loop:
        REPNE  SCASW
        JNE    @@Fail
        MOV    EBX, ECX
        PUSH   ESI
        PUSH   EDI
        MOV    ECX, EDX
        REPE   CMPSW
        POP    EDI
        POP    ESI
        JE     @@Found
        MOV    ECX, EBX
        JMP    @@Loop

        @@Fail:
        POP    EDX

        @@Zero:
        XOR    EAX, EAX
        JMP    @@Exit

        @@Found:
        POP    EDX
        MOV    EAX, EDI
        SUB    EAX, EDX
        SHR    EAX, 1

        @@Exit:
        POP    EDI
        POP    ESI
        POP    EBX
      End;
  {$ENDIF}
  {$IFDEF Win64}
    Class Function TXHelper.Pos(Const Sub, S: TWideString): Integer;
      begin
        result := System.Pos(Sub, S);
      end;
  {$ENDIF}
Denn der Assembler-Code ist nur eine schnellere Variante der POS-Funktion aus der System-Unit. Aber wenn Du den Teil so ersetzt, funktioniert es auch mit 64Bit. Die Quelle ist die himxml_164.7z oben aus den Downloads.

himitsu 1. Nov 2016 14:57

AW: himXML (gesprochen himix ML)
 
Joar, im Notfall einfach das "normale" Pos verwenden. :oops:

In Bezug auf Multiplatform ist das auch einer der Teile, die rausgeflogen sind. (wenn ich's dann mal fertig hab)

Dawn87 1. Nov 2016 15:01

AW: himXML (gesprochen himix ML)
 
Ich hatte den Versuch schon gewagt und die Pos-Funktion ersetzt. Leider kamen danach noch andere Fehler, die ich nicht mehr genau im Kopf habe. "Der linken Seite kann nichts zugewiesen werden" in einem Inc()-Aufruf. Da werde ich morgen nochmal nach schauen.

himitsu 1. Nov 2016 17:05

AW: himXML (gesprochen himix ML)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich weiß nicht, ob ich auf die Schnelle alles fand.
Und hab zusätzlich auch die SAX-Komponentn rausgeworfen, da sie in der Version eh nicht fertig waren.

Dawn87 2. Nov 2016 16:53

AW: himXML (gesprochen himix ML)
 
Super Sache! Werde leider wohl erst morgen oder Freitag zum Ausprobieren kommen.

Hier ändern sich die Prioritäten zurzeit schneller als mir lieb ist.

himitsu 2. Nov 2016 17:04

AW: himXML (gesprochen himix ML)
 
Kenn ich irgendwie.

Ich versuche immernoch mein Basissstem aufzufräumen, bzw. ich alles komplett neu aufzubauen (mit Übernahme paar "überarbeiteter" Altcodes).
Alle File-Parser wollte ich dann darauf aufbauen lassen und überall eine einheitliche Speicherverwaltung vorallem gemeinsame Grundfunktionen nuzten.
Also alle Datei- und Datenlesefunktionen dann intern gleich/ähnlich haben. (XML, CompressedXML, JSON, INI, SQL, SVG, AnimatedCursors, PDF, XPS, OXPS, ZIP, VVFS usw.)

Einziges Problem für "dich": Ich schmeiße allen Legacy-Code raus und verwende neure CompilerFeatures/RTLFunktionen ... aktuell sieht es so aus, als wenn dann das Meiste nur noch XE3 XE7 und Neueres unterstützt. :oops:

romber 27. Dez 2016 20:44

AW: himXML (gesprochen himix ML)
 
Hallo himitsu,

nutze himXML in allen meinen XML-Projekten. Tolle Arbeit, nochmals vielen Dank!
Gibt es mittlerweile eine neuere Version?

CodeX 22. Jan 2017 22:05

AW: himXML (gesprochen himix ML)
 
Ich werde bei einem größeren Projekt mittelfristig wohl von INI auf XML wechseln müssen. Habe deshalb gerade ein wenig ausgelotet, welche Möglichkeiten da so bestünden und finde himXML rein von der Beschreibung und von der Entwicklung ziemlich gut. Super Arbeit, himitsu! :thumb:

Nun scheint ja OmniXml in Form von OXml ja wieder auferstanden zu sein und wird aktuell weiterentwickelt. Ein "lebendiges" Projekt ist natürlich immer irgendwie angenehmer, wenn man sowieso frisch einsteigen möchte.

Kann jemand vom aktuellen Stand aus sagen, ob himXML und OXml irgendetwas stark unterscheidet? (Vor-/Nachteile)

himitsu, hast Du vor, himXML noch weiter zu entwickeln? Wäre es denkbar, die Verschlüsselungsfuntion von einzelnen Knoten auf die gesamte Datei zu erweitern?

a.def 22. Jan 2017 22:15

AW: himXML (gesprochen himix ML)
 
Dann klinke ich mich aus Interesse auch mal ein :stupid:

Der Wechsel von Ini nach XML interessiert mich auch sehr. Nur warum sollte man das tun? Welche Gründe müssen/sollten für einen so radikalen Wechsel erfüllt sein?
Was Ini ja auszeichnet ist, dass der Benutzer die Datei leicht bearbeiten kann.
Gegen Ini spricht diese komische ... 64 KB (?) Grenze.
Ich habe eine 59KB große Ini-Datei und keine Probleme. Was ab 64 KB passiert weiß ich nicht.

Was spricht aber für XML und gegen Ini?

Ich selbst würde beim Wechsel nicht himXML nehmen sondern das hier... habe ich vor Jahren schon oft benutzt und hatte nie Probleme:
http://www.swissdelphicenter.ch/de/showcode.php?id=2269
Schön, klein, keine DLL.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:28 Uhr.
Seite 32 von 35   « Erste     22303132 3334     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz