AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Debugging Hilfe bei Hagens DEC, hier LHSZ.pas

Ein Thema von Assertor · begonnen am 10. Sep 2008 · letzter Beitrag vom 11. Sep 2008
 
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#1

Debugging Hilfe bei Hagens DEC, hier LHSZ.pas

  Alt 10. Sep 2008, 09:34
Hallo DPler,

ich arbeite gerade etwas an der DEC. Aktuell Sitze ich vor der LHSZ.pas. Für alle, die es nicht wissen: Es ist eine schlanke, effektive Unit für Hufmann-Kompression mit optionaler Verschlüsselung.

Die original Unit läuft nur bis ~ D7, darüber knallt es mit AVs, die ich soweit beheben konnte: Im Vergleich zu Hagens Original habe ich die Chars-Deklaration auch im Inflate Record hinzugefügt, da dieser hier fehlte.

Das Problem ist nun, daß die Inflate-Funktion scheinbar einen Bug hat, der nur > D7 zum Tragen kommt. Im Debugger sehe ich schon mal, daß in LH.Data nie ein Wert geschrieben wird. Die Frage ist, warum?

Kann das bitte mal jemand Testen?

Code zum Testen der LHSZ.pas:
Delphi-Quellcode:
procedure Test;
var
  Key, PlainText: String;
  CipherText: String;
  Data: Pointer;
  Res: Integer;
begin
  PlainText := 'יהורם גאון test test test test test test test test test test test test';
  Key := 'testpw';

  try
    Res := LHCheck(LHEncodeBuffer(Key, PlainText , Length(PlainText) * SizeOf(PlainText[1]), Data));
    try
      SetString(CipherText, PChar(Data), Res);
      ShowMessage(CipherText);
    finally
      FreeMem(Data);
    end;
  except
    on E: Exception do
      ShowMessage('Error: ' + E.Message);
  end;

  try
    Res := LHCheck(LHDecodeBuffer(Key, CipherText , Length(CipherText) * SizeOf(CipherText[1]), Data));
    try
      SetString(PlainText, PChar(Data), Res);
      ShowMessage(PlainText); // hier wird nur ein sehr großer ~ 1400/6000 Char großer Leertext ausgegeben, da Data leer ist
    finally
      FreeMem(Data);
    end;
  except
    on E: Exception do
      ShowMessage('Error: ' + E.Message);
  end;

end;
Anbei auch meine Testversion der LHSZ.pas.

Gruß Assertor
Angehängte Dateien
Dateityp: pas lhsz_163.pas (40,6 KB, 11x aufgerufen)
Frederik
  Mit Zitat antworten Zitat
 


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:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 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