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

# IndexByte

Search for a byte in a memory range.

## Declaration

Source position: systemh.inc line 790

`function IndexByte(`
`const buf;`
`len: SizeInt;`
`b: Byte`
`):SizeInt;`

## Description

IndexByte searches the memory at buf for maximally len positions for the byte b and returns it's position if it found one. If b is not found then -1 is returned. The position is zero-based.

## Errors

Buf and Len are not checked to see if they are valid values.

## See also

IndexChar |  | Search for a character in a memory range.
IndexDWord |  | Search for a DWord value in a memory range.
IndexWord |  | Search for a WORD value in a memory range.
CompareByte |  | Compare 2 memory buffers byte per byte

## Example

    Program Example105;

    { Program to demonstrate the IndexByte function. }

    Const
      ArraySize = 256;
      MaxValue = 256;

    Var
      Buffer : Array[1..ArraySize] of Byte;
      I,J : longint;
      K : Byte;

    begin
      Randomize;
      For I:=1 To ArraySize do
        Buffer[I]:=Random(MaxValue);
      For I:=1 to 10 do
        begin
        K:=Random(MaxValue);
        J:=IndexByte(Buffer,ArraySize,K);
        if J=-1 then
          Writeln('Value ',K,' was not found in buffer.')
        else
          Writeln('Found ',K,' at position ',J,' in buffer');
        end;
    end.