Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.452 Beiträge
 
Delphi 12 Athens
 
#5

AW: Datentypen von String zu Byte und wieder zurück

  Alt 27. Apr 2017, 14:29
Ich verstehe das so, daß du die beiden Hex-Strings bitweise verschachtelst. Folgende Funktion sollte das leisten:

Delphi-Quellcode:
function Convert(const A, B: string): string;

  function Merge(CA, CB: Char): string;
  type
    TByteSet = set of 0..3;
  var
    BS: TByteSet;
    b1: Byte;
    b2: Byte;
    I: Integer;
  begin
    b1 := StrToInt('$' + CA);
    b2 := StrToInt('$' + CB);
    BS := [];
    for I := 0 to 3 do begin
      if I in TByteSet(b1) then begin
        Include(BS, 2*I);
      end;
      if I in TByteSet(b2) then begin
        Include(BS, 2*I + 1);
      end;
    end;
    Result := IntToHex(Byte(BS), 2);
  end;

var
  I: Integer;
begin
  Assert(Length(A) = Length(B), 'Strings müssen gleich lang sein!');
  Result := '';
  for I := 1 to Length(A) do begin
    Result := Result + Merge(A[I], B[I]);
  end;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat