[Overview][Constants][Types][Classes][Procedures and functions][Variables] Reference for unit 'System' (#rtl)

CompareDWord

Compare 2 memory buffers DWord per DWord

Declaration

Source position: systemh.inc line 384

function CompareDWord(

  const buf1;

  const buf2;

  len: SizeInt

):SizeInt;

Description

CompareDWordcompares two memory regions buf1,buf2on a DWord-per-DWord basis for a total of lenDWords. (A DWord is 4 bytes).

The function returns one of the following values:

-1
if buf1and buf2contain different DWords in the first lenDWords, and the first such DWord is smaller in buf1than the DWord at the same position in buf2.
0
if the first lenDWords in buf1and buf2are equal.
1
if buf1and buf2contain different DWords in the first lenDWords, and the first such DWord is larger in buf1than the DWord at the same position in buf2.

Errors

None.

See also

CompareChar

  

ompare 2 memory buffers character per character

CompareByte

  

Compare 2 memory buffers byte per byte

CompareWord

  

Compare 2 memory buffers word per word

Example

Program Example101;

{ Program to demonstrate the CompareDWord function. }

Const
  ArraySize     = 100;
  HalfArraySize = ArraySize Div 2;

Var
  Buf1,Buf2 : Array[1..ArraySize] of Dword;
  I : longint;

  Procedure CheckPos(Len : Longint);

  Begin
    Write('First ',Len,' DWords are ');
    if CompareDWord(Buf1,Buf2,Len)<>0 then
      Write('NOT ');
    Writeln('equal');
  end;


begin
  For I:=1 to ArraySize do
    begin
    Buf1[i]:=I;
    If I<=HalfArraySize Then
      Buf2[I]:=I
    else
      Buf2[i]:=HalfArraySize-I;
    end;
  CheckPos(HalfArraySize div 2);
  CheckPos(HalfArraySize);
  CheckPos(HalfArraySize+1);
  CheckPos(HalfArraySize + HalfArraySize Div 2);
end.