Comparing arrays in Delphi

arrays, compare, delphi, indexing

Solution

function ByteArrayPos(const SearchArr : array of byte; const CompArr : array of byte) : integer;
//  result=Position or -1 if not found
var
  Comp,Search : AnsiString;
begin
  SetString(Comp, PAnsiChar(@CompArr[0]), Length(CompArr));
  SetString(Search, PAnsiChar(@SearchArr[0]), Length(SearchArr));
  Result := Pos(Search,Comp) - 1;
end;

Problem

I have 3 arrays, for example: ``` const A: Array[0..9] of Byte = ($00, $01, $AA, $A1, $BB, $B1, $B2, $B3, $B4, $FF); B: Array[0..2] of Byte = ($A1, $BB, $B1); C: Array[0..2] of Byte = ($00, $BB, $FF); ``` Is there a way to compare and get the index of the right one, instead of checking each byte 1 by 1? For example: ``` function GetArrayIndex(Source, Value: Array of Byte): Integer; begin .. end; GetArrayIndex(A, B); // results 3 GetArrayIndex(A, C); // results -1 ``` Thank you in advance.

Original source

Related problems