AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte himXML (gesprochen himix ML)

himXML (gesprochen himix ML)

Ein Thema von himitsu · begonnen am 12. Mär 2009 · letzter Beitrag vom 11. Nov 2020
Antwort Antwort
Dawn87

Registriert seit: 15. Feb 2007
Ort: Lüdenscheid
189 Beiträge
 
Delphi XE5 Professional
 
#1

AW: himXML (gesprochen himix ML)

  Alt 30. Okt 2016, 17:05
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
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.690 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: himXML (gesprochen himix ML)

  Alt 30. Okt 2016, 20:20
Nimm OXml.
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

AW: himXML (gesprochen himix ML)

  Alt 31. Okt 2016, 05:13
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.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Dawn87

Registriert seit: 15. Feb 2007
Ort: Lüdenscheid
189 Beiträge
 
Delphi XE5 Professional
 
#4

AW: himXML (gesprochen himix ML)

  Alt 1. Nov 2016, 10:35
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.
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#5

AW: himXML (gesprochen himix ML)

  Alt 1. Nov 2016, 10:57
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.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: himXML (gesprochen himix ML)

  Alt 1. Nov 2016, 14:57
Joar, im Notfall einfach das "normale" Pos verwenden.

In Bezug auf Multiplatform ist das auch einer der Teile, die rausgeflogen sind. (wenn ich's dann mal fertig hab)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Dawn87

Registriert seit: 15. Feb 2007
Ort: Lüdenscheid
189 Beiträge
 
Delphi XE5 Professional
 
#7

AW: himXML (gesprochen himix ML)

  Alt 1. Nov 2016, 15:01
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.
  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:

(?)

LinkBack to this Thread

Erstellt von For Type Datum
xml - MSXML alternative - Stack Overflow This thread Refback 28. Jun 2011 15:34

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 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-2025 by Thomas Breitkreuz