Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Binärcode <--> ASCII

  Alt 27. Mär 2006, 22:27
Hallo Eichhoernchen,

von den Zeigern hatte ich mir einen Geschwindigkeitsvorteil versprochen, aber dann kam mir ein längerer Aufenthalt in der heimischen Keramikausstellung dazwischen. Das Setzen der Länge sollte schon sein, aber um niemanden mehr mit den Zeigern zu verwirren, hier eine Version, welche auch mit krummen Längen des dualen Strings zurecht kommen sollte:

Delphi-Quellcode:
function DualToStr(dual: String): String;
var
  i, iResult, iLen, iOffset: integer;
  b: Byte;
begin
  iLen := Length(dual);
  iOffset := iLen mod 8;
  SetLength(Result, iLen div 8 + Ord(iOffset > 0));
  b := 0;
  iResult := 0;
  for i := 1 to iLen do
  begin
    b := b shl 1 + Ord(dual[i] <> '0');
    if i mod 8 = iOffset then
    begin
      Inc(iResult);
      Result[iResult] := Chr(b);
    end;
  end;
end;
Gute Nacht

marabu
  Mit Zitat antworten Zitat