Delphi-PRAXiS
Seite 8 von 35   « Erste     678 91018     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)

himitsu 11. Jun 2009 17:47

Re: himXML (gesprochen himixML)
 
Neu:
Post #1
  • es kann direkt eine Inline-Verschlüsselung genutzt werden
    einfach für den gewünschten Knoten zusweisen und alles via .Text und .Text_S wird automatisch beim Zuweisen/Auslesen ver-/entschlüsselt
    Delphi-Quellcode:
    Node.Crypted := '*';        // Standardverschlüsselung nutzen (erstes in der Liste)
    Node.Crypted := 'RC4';      // RC4 verwenden
    Node.Text := X;             // zuweisen und automatisch verschlüsseln
    X := Node.Text;             // automatisch entschlüsseln und auslesen
    If Node.Crypted <> '' Then  // nur prüfen ob es verschlüsselt ist
    If Node.Crypted = 'RC4' Then // prüfen ob es RC4 verschlüsselt ist

    XML.CryptData['RC4'] := S; // anderen Key für RC4 festlegen
    da die Verschlüsselungsroutine Zugriff auf die Node-Attribute hat, könnte man auch eine eigene Verschlüsselung zuweisen, welche z.B. über ein weiteres Attribut jeden Node mit einem eigenem Key verschlüsselt.
    Delphi-Quellcode:
    XML.Cryptors      // listet alle registrierten Verschlüsselungen auf
    XML.SetCryptor    // setzt/lösche eine Verschlüsselung
    XML.CryptProc     // siehe SetCryptor
    XML.CryptData     // siehe SetCryptor
    XML.CryptAttrName // der Name des Attributes, welcher die aktive Verschlüsselung enthält


Und dann hab ich noch einen bösen Fehler in der Base64-Codierung entdeckt
bei der letzen Typenumstellung wurde die Zählweise nicht angepaßt und so kam nicht das raus, was rauskommen sollte und es konnten auch mal nette Exceptions auftauchen, da Pufferüberlauf entstand. :shock:
z.B.
alt: Inc(Pv, 3);
neu: Inc(Pv);

früher war es ein Bytearray über den gesamten String, jetzt ist z.B. Pv nur noch ein Zeiger auf Array[0..2] of Byte.

Satty67 13. Jun 2009 20:50

Re: himXML (gesprochen himixML)
 
Hallo,

leider hab' ich ein paar Probleme zu berichten:

1)

Programme mit eingebundener himXML-Unit brechen unter Windows 7 RC sofort ab. Die neuesten Demo-Binaries einfach so (scheinbar wegen Console), mein VCL-Testprogramm mit Runtime-Error 217.

Dabei konnte ich es so weit runter reduzieren, das alleine das Einbinden der Unit himXML ausreicht (ohne irgend ein .create). Der Fehler liegt also im Initialization-Teil der Unit. Da ich unter Windows 7 RC noch keine BDS Umgebung hab', kann ich leider nicht mit genaueren Informationen dienen. Wenn Du kein Win7 zu Testen hast, gib kurz Bescheid und ich installiere dann ein BDS unter Win7 um es genauer definieren zu können.

2)

Die neueste hier gepostete Version lässt sich nicht mehr unter TDE2006 kompilieren. Besitze inzw. zwar auch BDS 2007, aber bis TDE 2006 abwärts wollte zumindest ich noch eine abwärts Kompatibilität (muss nicht zwingend Dein Anliegen sein) ;)

Die erste Fehler-Meldung beim compilieren:
[Pascal Fehler] himXML.pas(1702): E2251 Doppeldeutiger überladener Aufruf von 'CreateEx'
bei Zeile 1702 [himXML]:
Delphi-Quellcode:
If (L < 0) or (i > 0) Then Raise EXMLException.CreateEx(nil, 'Crypt_Base64Decode', @SCorupptedBase64);

himitsu 13. Jun 2009 21:35

Re: himXML (gesprochen himixML)
 
och, 2) ist leicht zu beheben :mrgreen:

ersetze einfach mal das nil durch TXMLFile

zu 1)
hab grad kein Win7 installiert

im Anhang hab ich mal eine kleine Log-Funktion in die Init-Prozedur eingebaut
> erstellt eine CheckLibs.exe.log im Programmverzeichnis

[add]
217 = reControlBreak
hab ich da einen übersehn? :gruebel:
[add2]
nee, nix zu finden (der Einzige ist auskommentiert)

[edit]
Anhang entfernt ... braucht ja nun keiner mehr

Satty67 13. Jun 2009 22:04

Re: himXML (gesprochen himix ML)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Problem 2) gelöst
Problem 1) besteht noch, die LOG-Datei ist in der Anlage

himitsu 13. Jun 2009 23:00

Re: himXML (gesprochen himix ML)
 
also quasi bricht er hier ab

Delphi-Quellcode:
// check for chars out of upper/lower blocks
If not CompareMem(@Chars, @Chars2, SizeOf(Chars)) Then
  Raise EXMLException.CreateEx(Self, 'Initialize', @SInternalError, [2]);
nur warum zeigt sich die Exception nicht? :shock:


gut, dann nochmal, mit geändertem Log

vielleicht bekomm ich ja wenigstens den Grund für die Excetion weg.
auch wenn ich dann noch nicht weiß, warum die Excetion nicht angezeigt wird :?

[edit]
Anhang entfernt ... braucht ja nun keiner mehr

Satty67 13. Jun 2009 23:15

Re: himXML (gesprochen himix ML)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ok, Checklibs.exe startet und beendet jetzt ohne Fehlermeldung. (Der LOG-Inhalt lässt auf einen Fehler schließen)

Aber die Tests werden scheinbar nicht ausgeführt (sollte ja eine console mit testErgebnisssen aufgehen, aber flackert nur kurz... glaube nicht das Win7 soviel schneller ist ;) )

himitsu 13. Jun 2009 23:29

Re: himXML (gesprochen himix ML)
 
ups, zwei AND vergessen

eigentlich sollten da pro Zeile je 2 HexCodes von Unicodezeichen sein :lol:


ich installier mir W7 endlich grad ... mal sehn, ob es in der VM auch so rumzickt, wie bei dir :stupid:

[edit]
Anhang entfernt ... braucht ja nun keiner mehr

Satty67 13. Jun 2009 23:34

Re: himXML (gesprochen himix ML)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Die Log meldet zwar immer noch einen Initialisierungsfehler, hat aber eine etwas besser aussehende Datentabelle

Window 7 RC läuft wie ein Kätzchen in der VM, nur DirectX Anwendungen naturgemäß nicht-

himitsu 14. Jun 2009 06:36

Re: himXML (gesprochen himix ML)
 
also in Consolen wird auch ein Fehler angezeigt
z.B. über die Console oder mit einer CheckLibs.cmd
Code:
CheckLibs.exe
PAUSE
Code:
C:\Users\Frank\Desktop>CheckLibs.exe
Exception EXMLException in Modul CheckLibs.exe bei 0001D489.
EXMLException (TXMLFile.Initialize):
internal error (2).

C:\Users\Frank\Desktop>PAUSE
Drücken Sie eine beliebige Taste . . .
ich laß ja die Exception im Consolen-Modus über die Console ausgeben und nicht als Fenster :angel2:

allerdings wollte ich dann daß Programm nicht anhalten, um nicht den Programmfluß der z.B. einer Batchdatei nicht zu behindern.

Aber ich werd mal sehen, wenn das Programm alleine läuft, ob und wie ich da eine Pause einbauen kann.

[add]
ach neee, ich hab hier die Exceptionbehandlung mal nicht selber implementiert und nutze den Delphi-Standard, also nix mit Pause :?
[/add]

[add2]
und im VCL-Modus wird bei mir auch die Exception angezeigt, als läuft doch alles :angel2:

OK, ich werd nur noch etwas die Initialisierung überarbeiten.

Der Grund ist übrigens, daß ich zum Vergleichen nicht mher ständig direkt über die WinAPI geh, sondern mir nur Anfangs eine kleine Kopie anlege, aber da nicht über den gesamten Unicode-Bereich, sondern nur Ausschnittsweise und diese Meldung besagt einfach nur, daß es nun (in Win7) Bereiche gibt, die ich nicht abgedeckt hab und dann wirft meine Lib mit einer Exception und bricht ab :oops:
[/add2]

Ja und das andere ... In Win7 Wurde wohl kräftig am Unicode rumgeschraubt und viel Neues eingebaut.


Ich glaub ich nehm besser mal diese eine Exception raus und schalte dann beim Vergleich in einen anderen Modus, welcher diese Initialwerte nicht benötigt :stupid:

nur die rießen Vista/Win7-Icons in einem kleinem 896x600-VM-Bildchirmchen ... da passen ja grad mal 5 Untereinander und der Desktop ist voll

Satty67 14. Jun 2009 07:05

Re: himXML (gesprochen himix ML)
 
Zitat:

Zitat von himitsu
ich laß ja die Exception im Consolen-Modus über die Console ausgeben und nicht als Fenster

Stimmt, das Konsolenfenster wird natürlich geschlossen ohne "pause" oder dergleichen... :stupid:

Bis Ende des Jahres ist ja Zeit, bis himXML auch Win7 kompatibel sein sollte, aber gibt halt Sodbrennen, solange man weis, dass es nicht läuft. Auf himXML verzichten kann ich auf keinen Fall, alles in allem erheblich smarter anzuwenden, als MSXML (vom Rest ganz zu schweigen).

896x600 hmm... mir wird mein 19"er schon langsam zu eng, ich geh jetzt frühstücken...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 Uhr.
Seite 8 von 35   « Erste     678 91018     Letzte » 

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