Delphi Reverse order of bytes

前端 未结 2 552
暖寄归人
暖寄归人 2021-01-20 03:10

I have been trying to write a function that takes two pointers (an input and an output) and writes the bytes from the input into the output in reverse order. So far I have

2条回答
  •  生来不讨喜
    2021-01-20 03:57

    procedure ReverseBytes(Source, Dest: Pointer; Size: Integer);
    var
      Index: Integer;
    begin
      for Index := 0 to Size - 1 do
        Move(Pointer(LongInt(Source) + Index)^, 
            Pointer(LongInt(Dest) + (Size - Index - 1))^ , 1);
    end;
    
    procedure TForm2.Button2Click(Sender: TObject);
    var
      s: AnsiString;
      P: Pointer;
    begin
      s := #0'testreverse';
      GetMem(P, Length(s));
      ReverseBytes(Pointer(s), P, Length(s));
    
      ShowMessage(PAnsiChar(P));   // esrevertset
      FreeMem(P);
    end;
    

提交回复
热议问题