Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi HILFE: DEC 3.0 -> DEC 5.1/5.2 (https://www.delphipraxis.net/139708-hilfe-dec-3-0-dec-5-1-5-2-a.html)

JasonClark 3. Sep 2009 14:04


HILFE: DEC 3.0 -> DEC 5.1/5.2
 
Hallo Zusammen

Ich benutze schon sei einiger Zeit zum Speichern von Dateistreams die DEC 3.0 und habe mich damals für den TCipher_SCOP entschieden.

Damals bei der DEC 3.0 gab es ja folgenden einfachen Aufruf:

Delphi-Quellcode:
{ .. }
with TCipher_SCOP.Create('Secret password', nil) do
begin
  try
    FFileStream.Position := 0;
    EncodeStream(FFileStream, FFileStream, FFileStream.Size);
  finally
    Free;
  end;
end;
{ .. }
Wie man sieht gab es bei der DEC 3.0 beim constructor Create zwei Parametermöglichkeiten. Wobei der erste Parameter ein optionales Passwort war. In der DEC 5.1/5.2 gibt es nur noch das constructor Create ohne Parameter. Somit hab ich versucht die Sache mit der Hasherstellung wie in der DEC 3.0 nachzustellen, indem ich bei der DEC 5.1/5.2 eine eigene Klasse abgleitet habe:

Delphi-Quellcode:
{ TMyCipher_SCOP }
constructor TMyCipher_SCOP.Create(const APassword: AnsiString);
var
  FHash: TDECHash;
  I   : Integer;
begin
  inherited Create;
  if (Length(APassword) > 0) then
  begin
    FHash := THash_RipeMD256.Create;
    try    
      FHash.Init;
      FHash.Calc(PAnsiChar(APassword)^, Length(APassword));
      FHash.Done;
      I := FHash.DigestSize;
      if (I > Context.KeySize)
      then
         I := Context.KeySize;
      { Ab hier scheint etwas schief zugehen }
      Init(FHash.Digest^, I, InitVector, InitVectorSize, 0);
      Encode(FHash.Digest^, FHash.Digest^, FHash.DigestSize);
      Done;
    finally
      FHash.Free;
    end;
  end;
end;

Das grösse Problem ist nun das ich eine Datei mit Hilfe von DEC 3.0 unter Delphi 2007 mit einem Stream gespeichert hab und nun auf Delphi 2009 umgestiegen bin und mit meinem Programm die Datei wieder laden muss.

Mir sind unteranderem einige Änderungen bei der DEC 5.1/5.2 im CTSx und auch im GetContext aufgefallen.

Hoffe mir kann jemand behilflich sein, da es wirklich dringend wäre. Evtl. hat ja Hagen hier einen schnellen Hinweis?

Gruss
Jason :gruebel:

Assertor 3. Sep 2009 14:12

Re: HILFE: DEC 5.1 (Delphi 2007) -> DEC 5.2 (Delphi 2009)
 
Hi JasonClark,

Zitat:

Zitat von JasonClark
Wie man sieht gab es bei der DEC 5.1 beim constructor Create zwei Parametermöglichkeiten. Wobei der erste Parameter ein optionales Passwort war. In der DEC 5.2 gibt es nur noch das constructor Create ohne Parameter. Somit hab ich versucht die Sache mit der Hasherstellung wie in der DEC 5.1 nachzustellen, indem ich bei der DEC 5.2 eine eigene Klasse abgleitet habe:

...

Mir sind unteranderem einige Änderungen bei der DEC 5.2 im CTSx und auch im GetContext aufgefallen.

:shock:

Ich verstehe Deinen Post nicht, da die DEC 5.2:
1) nur ein Portierung der 5.1 für Unicode unter D2009 war
und
2) von mir gemacht wurde

Ich habe nichts, aber auch gar nichts an den Konstruktoren gedreht, noch irgendwelche Änderungen am CTSx oder GetContext vorgenommen (jedenfalls nichts außerhalb der Char/String Relevanz).

Bist Du sicher, daß Du vorher die letzte verfügbare DEC 5.1 verwendest hast? Das klingt für mich nicht danach...

Nachtrag: Erstmal natürlich herzlichen Willkommen in der DP :)

:dp:

Gruß Assertor

JasonClark 4. Sep 2009 07:02

Re: HILFE: DEC 5.1 (Delphi 2007) -> DEC 5.2 (Delphi 2009)
 
Zitat:

Zitat von Assertor
Bist Du sicher, daß Du vorher die letzte verfügbare DEC 5.1 verwendest hast? Das klingt für mich nicht danach...
Gruß Assertor

Hallo Assertor

Erstmal vielen Dank für deine Willkommensgrüsse und deine Arbeit an der Portierung von DEC 5.1 auf DEC 5.2 :hello:

:shock: Voller Erschrecken musste ich feststellen das du vollkommen recht hast und ich die DEC 3.0 (siehe auch Link unter: www.torry.net)
verwendet hatte. Das schlimme daran ist in einem Unterverzeichnis der alten DEC 3.0 Bibliothek lag eigentlich die DEC 5.1 und daher bin ich mal davon ausgegangen das ich das neuste verwendet hätte. Leider war dem nicht so und somit bitte ich Dich um Entschuldigung für dieses Missverständniss meinerseits. :oops:

Trotzdem wäre ich Dir ewig dankbar, falls Du dich ggf. trotzdem meinem Problem wie oben geschildert von DEC 3.0 -> DEC 5.1/DEC 5.2 annehmen könntest. Soweit ich weiss hatte ja Hagen bei der DEC 3.0 ein komplettes Recoding vorgenommen und somit wäre es nett von Dir oder jemand anderes mir mit diesen Constructor Unterschieden behilflich zu sein. Da wie ich ja, wie oben bereits geschildert habe, einen alten Dateistream mit DEC 3.0 (TCipher_SCOP) geschrieben und jetzt gerne mit DEC 5.1 oder DEC 5.2 (wegen Unicode) wieder auslesen möchte.

Nochmals Danke für die Richtigstellung Assertor :cheers:

Hoffentlich weiss jemand Rat... bin schon ziemlich am verzweifeln an den Unterschieden bei CTSx und GetContext zwischen DEC 3.0 und DEC 5.1/DEC 5.2 :(

Gruss
Jason

Sharky 4. Sep 2009 08:48

Re: HILFE: DEC 5.1 (Delphi 2007) -> DEC 5.2 (Delphi 2009)
 
Zitat:

Zitat von JasonClark
... Hoffentlich weiss jemand Rat...

Hai Jason,

im Zweifel kann sicher der Entwickler des DEC helfen.
Das schöne ist..... er ist Mitglied in der Delphi-PRAXiS. -> Hagen

JasonClark 4. Sep 2009 11:51

Re: HILFE: DEC 5.1 (Delphi 2007) -> DEC 5.2 (Delphi 2009)
 
Zitat:

Zitat von Sharky
im Zweifel kann sicher der Entwickler des DEC helfen.
Das schöne ist..... er ist Mitglied in der Delphi-PRAXiS. -> Hagen

Hallo Sharky

Vielen Dank für den Tipp. Ich wusste auch das er hier im Forum angemeldet ist, dachte aber vorher das es ja eine Thematik der Portierung auf DEC 5.2 gewesen sei und wollte ihn somit damit nicht nerven. :)

Ich hab ihn versucht zu kontakieren und falls vielleicht trotzdem jemand anderes mir schonmal helfen könnte wäre ich sehr dankbar da es für mich jetzt ziemlich dringend wäre.

Danke nochmals an alle die mir bis jetzt geholfen haben und hoffentlich noch helfen werden/können!

Grüsse aus der verregneten Schweiz...
Jason :gruebel:

Assertor 7. Sep 2009 22:55

Re: HILFE: DEC 5.1 (Delphi 2007) -> DEC 5.2 (Delphi 2009)
 
Hi Jason,

Zitat:

Zitat von JasonClark
Erstmal vielen Dank für deine Willkommensgrüsse und deine Arbeit an der Portierung von DEC 5.1 auf DEC 5.2 :hello:

Bitte, gerne!

Zitat:

Zitat von JasonClark
:shock: Voller Erschrecken musste ich feststellen das du vollkommen recht hast und ich die DEC 3.0 [...] verwendet hatte.

Ist ja kein Problem, hatte mich nur gewundert - wenn ich da was geändert hätte, müßte ich mich ich noch grob dran erinnern ;)

Zitat:

Zitat von JasonClark
Trotzdem wäre ich Dir ewig dankbar, falls Du dich ggf. trotzdem meinem Problem wie oben geschildert von DEC 3.0 -> DEC 5.1/DEC 5.2 annehmen könntest.

Puh, leider komm ich im moment nicht dazu - zu meiner Schande muß ich gestehen, daß die DEC 3 weit vor meiner (Delphi-)Zeit lag. Ich habe diese also nie genutzt, geschweige mich mit deren Code auseinander gesetzt. Sprich: Ich müßte mich jetzt erst in eine Komponente einlesen, die ich nie mehr verwenden würde. Das sprengt leider meine verfügbare Zeit.

Suche doch nochmal hier im Forum, wenn ich mich recht erinnere gibt es bereits einige Threads zum Thema Portierung DEC 3 > DEC 5.x. Sharkys Tipp hast Du ja schon gelesen.

Tut mir leid, daß ich Dir nicht weiterhelfen kann.

Gruß Assertor


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr.

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