Skip to main content

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.

See Also

EXTRACT Read and Lock Data
READ Read Data from File

Example

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