Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: RC4 Implementierung - Problem mit längeren Texten

  Alt 11. Jun 2009, 20:15
Delphi-Quellcode:
rc4init(memo1.Text);
text:=memo2.Text;
textneu:=rc4encdec(text);
memo2.Text:=textneu;
Wie schon himitsu bereit erwähnt hat, wird ein String, das #0 enthält, nicht ganz angezeit (0 wird als Nullterminierung interpretiert)
Kannst gern ausprobieren, falls du es nicht glaubst / verstehst:

Delphi-Quellcode:
var x:String;
x := 'Test'#0'Dies wird nicht gezeigt';
Ich würd das Problem einfach so lösen, dass ich mir das ganze als Hex anzeigen lasse:

Delphi-Quellcode:
function StrToHex(Str: String): String;
var
  i: Integer;
begin
  for i := 1 to Length( Str ) do
  begin
    Result := Format( '%s $%x', [Result, ORD( Str[i] ) ] );
    if i mod 16 = 0 then
      Result := Result + #13#10;
  end;
end;
oder, fall ich mal unbedingt den Text nicht durch das Kopfrechnen (Umrechnen von Hex auf Dez. und Ascii Characterdarstellung) erschätzen will, mach ich folgendes -> ich filter einfach alles, was nicht anzeigbar ist:

Delphi-Quellcode:
function FilterBadChars(Str: String; const FilterChar: Char = '.'): String;
var
  i: Integer;
begin
  Result := Str;
  for i := 1 to Length(Str) do
    if ORD(Str[i]) in [0..32, 130..255] then
      Result[i] := FilterChar;
end;
MfG
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat