[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] |
compare 2 memory buffers character per character
Source position: systemh.inc line 794
function CompareChar( |
const buf1; |
const buf2; |
len: SizeInt |
):SizeInt; |
CompareChar compares two memory regions buf1,buf2 on a character-per-character basis for a total of len characters.
The CompareChar0 variant compares len bytes, or until a zero character is found.
The function returns one of the following values:
None.
|
Compare 2 memory buffers byte per byte |
|
|
Compare two buffers character by character till a null-character is reached. |
|
|
Compare 2 memory buffers word per word |
|
|
Compare 2 memory buffers DWord per DWord |
Program Example100; { Program to demonstrate the CompareChar function. } Const ArraySize = 100; HalfArraySize = ArraySize Div 2; Var Buf1,Buf2 : Array[1..ArraySize] of char; I : longint; Procedure CheckPos(Len : Longint); Begin Write('First ',Len,' characters are '); if CompareChar(Buf1,Buf2,Len)<>0 then Write('NOT '); Writeln('equal'); end; Procedure CheckNullPos(Len : Longint); Begin Write('First ',Len,' non-null characters are '); if CompareChar0(Buf1,Buf2,Len)<>0 then Write('NOT '); Writeln('equal'); end; begin For I:=1 to ArraySize do begin Buf1[i]:=chr(I); If I<=HalfArraySize Then Buf2[I]:=chr(I) else Buf2[i]:=chr(HalfArraySize-I); end; CheckPos(HalfArraySize div 2); CheckPos(HalfArraySize); CheckPos(HalfArraySize+1); CheckPos(HalfArraySize + HalfArraySize Div 2); For I:=1 to 4 do begin buf1[Random(ArraySize)+1]:=Chr(0); buf2[Random(ArraySize)+1]:=Chr(0); end; Randomize; CheckNullPos(HalfArraySize div 2); CheckNullPos(HalfArraySize); CheckNullPos(HalfArraySize+1); CheckNullPos(HalfArraySize + HalfArraySize Div 2); end.