Delphi-PRAXiS
Seite 27 von 35   « Erste     17252627 2829     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)

RWarnecke 20. Mär 2011 13:58

AW: himXML (gesprochen himix ML)
 
Hallo himitsu,

ich arbeite gerade mit himXML unter Delphi 2010. Dabei hat er ein Problem mit dem Type TTypeKind. In Deiner himXML in Zeile 6764 sind nur 19 Typen deklariert. Unter Delphi 2010 sind aber für TTypeKind aber 22 Typen deklariert.
Ich habe jetzt einfach mal die Zeile 6764 erweitert. Das ganze sieht dann so aus :
Delphi-Quellcode:
        Const cTypeKind: Array[TTypeKind] of AnsiString = ('Unknown', 'Integer', 'Char',
            'Enumeration', 'Float', 'String', 'Set', 'Class', 'Method', 'WChar',
            'LString', 'WString', 'Variant', 'Array', 'Record', 'Interface', 'Int64',
            'DynArray' {$IF Declared(UnicodeString)}, 'UString', 'ClassRef', 'Pointer', 'Procedure' {$IFEND} );
Funktionieren tut es erstmal.

Edit: Ich habe gerade gesehen, dass in der Version 0.99d das ganze behoben ist. Dann werde ich diese nehmen.

RWarnecke 21. Sep 2011 11:15

AW: himXML (gesprochen himix ML)
 
Hallo himitsu,

wieviel Assembler hast Du denn in Deinem himXML ? Eine Funktion habe ich schon gefunden, die Funktion
Delphi-Quellcode:
Class Function TXHelper.Pos(Const Sub, S: TWideString): Integer;
. Änderst Du da noch etwas in Richtung 64Bit für XE2 ?

himitsu 21. Sep 2011 12:09

AW: himXML (gesprochen himix ML)
 
Ich glaub al zuviel Assembler war nicht drin :oops:

"heimlich" geändert wird schon seit XE so Einiges daran ... aber die Zeit -.-°
(Hab zwar ein Beta insalliert, welche bald wieder ausläuft, aber noch nicht viel damit gemacht
und wann/ob ich mir XE2 kaufe
und ich glaub geldlich/zeitlich werde ich die 10% DT-Rabatt nicht mehr nutzen können :( )

RWarnecke 21. Sep 2011 13:51

AW: himXML (gesprochen himix ML)
 
Da ich die Datei benötige, kann ich statt dem Assembler Pascal Code einfügen, der mit die Position des Suchstrings vom übergebenen String zurückliefert ? Der Assembler Code macht doch nichts anderes oder ?

himitsu 21. Sep 2011 15:08

AW: himXML (gesprochen himix ML)
 
Jupp.

Du könntest (vermutlich) auch das normale Delphi-Referenz durchsuchenPos verwenden.

Diese Funkion war IMHO nur wegen älteren Delphis enthalten. (glaub ich)

Ich hoffe nur keiner heult, wenn ich die nächste Version nur für D2010/XE und Neuer rausbring.
(eigentlich ab D2009, aber für Compilerfehler und andere delphieigene Bugs, mach ich mir, auf Biegen und Brechen, keinen Buckel mehr krum)

RWarnecke 22. Sep 2011 10:52

AW: himXML (gesprochen himix ML)
 
Hallo himitsu,

ich folgende Zeile Quelltext, die nicht sauber funktionieren :
Delphi-Quellcode:
  XMLConfig := TXMLFile.Create(nil, False);
  stream := TRCxStreamDecorator.Create(
    TFileStream.Create(GetSpecialFolder(CSIDL_APPDATA) + '\VPN-Konfiguration\vpnconfig.xml', fmOpenRead), // der konkrete stream
    True,               // ownsStream (auto-free)
    'password',         // Passwort fur die SandBox
    emEncodeWriting  ); // schreibend kodieren
  try
    (Stream as TRCxStreamDecorator).ReadSalt;
    XMLConfig.LoadFromStream(Stream);
  finally
    Stream.Free;
  end;
Ich verschlüssel eine XML-Datei mit RCx. Wenn ich die verschlüsselte Datei in ein Memo lade oder in eine StringList, dann funktioniert alles ganz wunderbar. Wenn ich es jetzt so mache, wie im obigen Quelltext, dann lande ich immer in der Funktion TRCStreamDecorator.Seek der Datei rcstreamdeco.pas. Die Dateien zum verschlüsseln habe ich aus diesem Beispiel. Ich habe dort alle Strings durch AnsiString ersetzt.

RWarnecke 29. Sep 2011 10:59

AW: himXML (gesprochen himix ML)
 
Hallo himitsu,

das Problem aus dem letzten Beitrag habe ich mit einem Workaround über eine TStringlist lösen können. Ich versuche gerade die interne Verschlüsselung zu nutzen. Ich habe Deine Beschreibung gelesen, kann diese aber nicht umsetzen. Hier mal ein Beispiel :
Delphi-Quellcode:
procedure TForm1.Btn_1Click(Sender: TObject);
var
  XML: TXMLFile;
  i: Integer;
  xmlnode: TXMLNode;
begin
  XML := TXMLFile.Create(nil);
  XML.CryptData['RC4'] := 'testen';
  For i := 0 to 10 do
  begin
    xmlnode := XML.RootNode.Nodes.Add('Node' + IntToStr(i));
    xmlnode.Text_S := 'Testnode_' + IntToStr(i);
  end;
  XML.SaveToFile('test.xml');
  XML.Free;
  M_1.Lines.LoadFromFile('test.xml');
end;
Habe ich da noch etwas vergessen oder was habe ich falsch gemacht ?

himitsu 29. Sep 2011 20:52

AW: himXML (gesprochen himix ML)
 
Delphi-Quellcode:
XML.CryptData['RC4'] := 'testen';
setzt nur den Schlüssel/Passwort für die Verschlüsselung.

Nun mußt du nur noch, bei den zu gewünschten Knoten noch sagen, daß sie damit verschlüsselt werden sollen.
Delphi-Quellcode:
    xmlnode := XML.RootNode.Nodes.Add('Node' + IntToStr(i));
    xmlnode.Crypted = 'RC4';
    xmlnode.Text_S := 'Testnode_' + IntToStr(i);
Eine integrierte Verschlüsselung über die gesammte Datei kommt erst in der nächsten Version. (solange kann man aber dennoch die XML-Datei streamen und diesen Stream verschlüsseln)

franktron 26. Okt 2011 16:48

AW: himXML (gesprochen himix ML)
 
Habt ihr das mit XE2 64Bit hingekrigt ?

Bei mir Kompiliert er aber stürzt dann beim erstellen von XML:=TXMLFile.Create(nil); mit Stack overflow ab.

RWarnecke 26. Okt 2011 17:12

AW: himXML (gesprochen himix ML)
 
Zitat:

Zitat von franktron (Beitrag 1132685)
Habt ihr das mit XE2 64Bit hingekrigt ?

Bei mir Kompiliert er aber stürzt dann beim erstellen von XML:=TXMLFile.Create(nil); mit Stack overflow ab.

Du musst doch nur die eine Position wo der Assemblercode die Position des Strings zurückgibt ändern in eine ganz normale Pos-Funktion. Dann hat es bei mir zumindest funktioniert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 Uhr.
Seite 27 von 35   « Erste     17252627 2829     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