Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#7

Re: [C++ -> Delphi]Der ">>" Operator

  Alt 11. Jan 2009, 14:53
Hallo,

einige kleine Korrekturen:

Delphi-Quellcode:
function GetInt8(var x:Pointer):Byte;
begin
  Result := PByte(x)^;
  Inc (PByte(x));
end;

function GetInt(var x:Pointer):Integer;
begin
  Result := PInteger(x)^;
  Inc (PInteger(x));
end;
Ab Delphi 2006 könnte man das Problem natürlich auch durch Records mit Methoden erschlagen:

Delphi-Quellcode:
type
  TMemoryReader = record
  private
    p : Pointer;
  public
    procedure Init (const aValue : Pointer); inline;
    function ByteValue : Byte; inline;
    function IntegerValue : Integer; inline;
  end;

procedure TMemoryReader.Init (const aValue : Pointer);
begin
  p := aValue;
end;

function TMemoryReader.ByteValue : Byte;
begin
  Result := PByte(p)^;
  Inc (PByte(p));
end;

function TMemoryReader.IntegerValue : Integer;
begin
  Result := PInteger(p)^;
  Inc (PInteger(p));
end;

// Anwendung

var
  Reader : TMemoryReader;
begin
  Reader.Init (Source);
  tmp1 := Reader.ByteValue;
  tmp2 := Reader.IntegerValue;
end;
Man sollte aber bei all diesen Versuchen das beherzigen, was sx2008 gesagt hat: je kompakter der Code wird, desto schwerer ist er für Dritte (und manchmal auch für den Programmierer) zu verstehen. Wer die Syntax von C++ haben möchte, der sollte besser in C++ programmieren...

Gruß Hawkeye
  Mit Zitat antworten Zitat