# ASCAN()

Scan array elements for a specified condition

Syntax

  ASCAN( <aTarget>, <xSearch>, [<nStart>], [<nCount>] ) --> nStoppedAt

Arguments

  <aTarget> Name of array to be scanned.
  <xSearch> Expression to search for in <aTarget>
  <nStart> Beginning subscript position at which to start the search.
  <nCount> Number of elements to scan with <aTarget>.

Returns

  <nStoppedAt> A numeric value of subscript position where <xSearch> was found.

Description

  This function scan the content of array named <aTarget> for the value of <xSearch>. The return value is the position in the array <aTarget> in which <xSearch> was found. If it was not found, the return value will be 0.
  If specified, the beginning subscript position at which to start scanning may be set with the value passed as <nStart>. The default is 1.
  If specified, the number of array elements to scan may be set with the value passed as <nCount>. The default is the number of elements in the array <aTarget>.
  If <xSearch> is a code block, the operation of the function is slightly different. Each array subscript pointer reference is passed to the code block to be evaluated. The scanning routine will continue until the value obtained from the code block is a logical true (.T.) or until the end of the array has been reached.

Examples

          aDir:=Directory("*.prg")
          AScan(aDir,,,{|x,y| x[1]="Test.prg"})

Status

  Ready

Compliance

  This function is not CA-Clipper compatible. Clipper ASCAN() is affected by the SET EXACT ON/OFF Condition

Files

  Library is vm

See Also

- AEVAL()