Directives 

FIND RECORD

Locate and Read Data Record

Format

FIND RECORD (filespec[,fileopt])var$

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

var$

String variable. Receives the contents of the record being read.

(TABLE support was added in PxPlus 2018.)

Description

Use the FIND RECORD directive to read a record from the file (channel) you specify. The record's complete data portion will be returned in the string variable you name. Apply the FIND RECORD statement when dealing with native-mode operating system files, when exchanging data with applications other than PxPlus, or when you want to read a complete record including data-field separators.

When executing a FIND RECORD directive, PxPlus advances the file position to the next record (or the record you specify in 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

0020 open lock (2)"NEWFIL"
0030 find record (1,end=1000)R$
0040 write record (2)R$
0050 goto 0030
1000 close (1),(2)
1010 end