| [Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] | 
ompare 2 memory buffers character per character
Source position: systemh.inc line 750
| 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.