Directives 

FIND

Locate and Read Data

Format

FIND (filespec[,fileopt])varlist 

Where:

filespec

Can be a numeric expression indicating the open channel number to use or a string expression containing the pathname or table name (if string is prefixed by the keyword TABLE) of the file to use.

fileopt

Supported file options (see File Options):

BSY=stmtref 

Traps Error #0: Record/file busy

DIR=num

Direction indicator (Not supported with [WDX] tag)

DOM=stmtref 

Missing record transfer

END=stmtref 

End-of-File transfer

ERR=stmtref 

Error transfer

IND=num 

Record index

KEY=string$/num

Record key

KNO=num | name$

File access key number (num) or name (name$)

REC=name$

Record prefix (REC=VIS(string$) can also be used)

RNO=num 

Record number

RTY=num 

Number of retries (one-second intervals). This overrides the value defined by the 'WT' system parameter.

SIZ=num 

Number characters to read

TBL=stmtref

Data translation table

TIM=num 

Maximum time-out value in integer seconds

stmtref

Program line number or statement label to which to transfer control

varlist

Comma-separated list of variables, literals, or IOL= options.

(TABLE support was added in PxPlus 2018.)

Description

Use FIND to read data from the file (channel) you specify. When PxPlus reads the data, it is split into one or more fields (either separated by the current delimiter or defined by an embedded format with headers, etc.). The contents of the first field are placed in variable 1, the second field in variable 2, and so on.

PxPlus automatically converts numeric data when executing a FIND statement and moving numerics into variables. Numeric data converted during a FIND directive does not use the 'DP' (Decimal Point Symbol) or 'TH' (Thousands Separator) system parameters for European decimal settings.

If you want to skip a field, use an * (asterisk) as a placeholder for the variable name. If you include more variables in a FIND directive than there are fields in the record, PxPlus initializes the additional variables to either 0 (for a numeric variable) or a null string (for a string variable). The FIND directive advances the file position to the next record (or the record you specify if you use a KEY= or IND= option). Use the KNO= option to change the current file access key.

Note:
If the record is not found when reading using a KEY= or IND= option, the current file position is not changed (unlike READ).

See Also

EXTRACT Read and Lock Data
READ Read Data from File

Example

0410 find (1,err=1000,dom=1200)A,B,*,*,E$