![]() |
AW: THashSHA1 funktioniert nicht mehr in 10.2(.1)?
Aber an den Update-Methoden wurde ja laut meinen Beyond-Compare zwischen \18.0\source\rtl\common\System.Hash.pas und \18.0\source\rtl\common\System.Hash.pas nix geändert?
Sicher das ihr euch da nicht irrt?
Delphi-Quellcode:
ist ja INLINE deklariert und wird dadurch vom Debugger gar nicht angesprungen?
procedure Update(const AData: TBytes; ALength: Cardinal = 0); overload; inline;
|
AW: THashSHA1 funktioniert nicht mehr in 10.2(.1)?
Einzige Änderung die ich sehe ist die Hinzunahme von System.Classes in die Uses, aber kann das die Ursache sein? :gruebel:
|
AW: THashSHA1 funktioniert nicht mehr in 10.2(.1)?
Zumindest bei kleinen Files bringt
Delphi-Quellcode:
das richtige Ergebnis. Kann aber Zufall sein, daß die Größe paßt, also besser mit Original-Filegröße.
LSHA1.Update(LFile.Memory^, LFile.Size)
|
AW: THashSHA1 funktioniert nicht mehr in 10.2(.1)?
Zitat:
Delphi-Quellcode:
Bytes funktionieren.
BUFFERSIZE = 4 * 1024;
Wer die Konstante in der Tokyo-System.Hash-Unit findet, darf sie behalten. |
AW: THashSHA1 funktioniert nicht mehr in 10.2(.1)?
Für Filesize=1000000 funktioniert's jedenfalls noch. Es wäre doch ein noch schwererer 'Bug', wenn die Größen (von File und Stream) wirklich von einander abweichen. Von der Hilfe her (habe leider keinen Quellcode), bleibt dem Compiler IMO gar nichts anderes übrig. Vielleicht hat sich die Compiler-Magic im Vergleich zu Berlin geändert.
|
AW: THashSHA1 funktioniert nicht mehr in 10.2(.1)?
Ich verstehe nicht warum ihr euch das mit untypisierten Zeigern überhaupt antut. Warum nicht einfach ein
Delphi-Quellcode:
, dessen
TBytesStream
Delphi-Quellcode:
nehmen und fertig?
Bytes
PS:
Delphi-Quellcode:
noch auf die entsprechende Länge einkürzen
Bytes
PPS: Oder direkt einfach mit einem Byte-Array, ganz ohne Stream:
Delphi-Quellcode:
uses System.IoUtils;
procedure TForm1.Button1Click(Sender: TObject); Var LSHA1: THashSHA1; payload: TBytes; begin if OpenDialog1.Execute() then begin payload := TFile.ReadAllBytes(OpenDialog1.FileName); LSHA1 := THashSHA1.Create(); LSHA1.Update(payload); Edit1.Text := LSHA1.HashAsString(); end; end; |
AW: THashSHA1 funktioniert nicht mehr in 10.2(.1)?
Zitat:
Ich habe das jetzt auch auf
Delphi-Quellcode:
umgestellt und dabei dann im System.Classes Source Code ein verrschrecktes
TBytesstream
Delphi-Quellcode:
bei der Klassendeklaration entdeckt :stupid:, aber Grund dafür warum man das Compilerverhalten einfach so ändert das der alte Code nicht mehr funktioniert (und auch noch still und heimlich Unsinn treibt) sehe ich trotzdem keinen.
end; // deprecated 'Use TBytesStream';
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:06 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