Thema: Delphi Wiedermal C -> Delphi

Einzelnen Beitrag anzeigen

Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Wiedermal C -> Delphi

  Alt 7. Mai 2008, 14:01
Delphi-Quellcode:
procedure Test();
var
  TestPatch: array [0..16] of Byte;
  Test74: array [0..16] of Byte;
  I: Integer;
begin
(** )
  case Bar of
    2:
(**)

      for I := 0 to 15 do
        if not Odd(I) then // (I mod 2) = 0
          Test74[I] := TestPatch[I + 1]
        else
          Test74[I] := TestPatch[I - 1];
(** )
    end;
  end;
(**)

end;
Letzendlich wird dort nichts anders gemacht als 8 'Words' aus TestPatch mit vertauschtem Lo-/Hi-Byte in Test74 zu kopieren.
Wobei das letzte Mitglied beider Arrays ausgelassen wird (scheint nur ein Platzhalten zu sein).
Wenn man die Datentypen ändern würde, dann könnte man es so schreiben:
Delphi-Quellcode:
procedure Test();
type
  TTest = packed record
    case Integer of
      1: (
        Bytes: array [0..16] of Byte);
      2: (
        Words: array [0..7] of Word{;
        Reserved: Byte}
);
  end;
var
  TestPatch: TTest;
  Test74: TTest;
  I: Integer;
begin
  for I := 0 to 7 do
    Test74.Words[I] := Swap(TestPatch.Words[I]);
end;
Was effizienten/lesbaren Code ergibt...
  Mit Zitat antworten Zitat