Directives 

OBTAIN

Get Hidden Terminal Input

Format

OBTAIN (chan[,fileopt])varlist

Where:

chan

Channel or logical file number of the file from which to get terminal input.

fileopt

Supported file options (see File Options):

BSY=stmtref

Traps Error #0: (Input timeout).

ERR=stmtref

Error transfer.

HLP=string$

Help message identifier.

IND=num

Position cursor to specified column number.

LEN=num

Limit on input size.

SIZ=num

Number of characters to read (number of screen columns).

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.

When screen positions are tight, you can combine the LEN= and SIZ= options to have PxPlus supply a scrolling input field.

Example:

To allow a user to enter 60 characters in a field where you only have room for 30 on the screen:

     input (0,len=60,siz=30)"Name....:",N$

varlist

Comma-separated list of variables, literals, mnemonics, IOL= options, and/or location functions '@(...)'. Include Format Masks to filter data being received.

Description

Use the OBTAIN directive to issue prompts to terminal devices and to process responses (the user's input). The file reference should be to a terminal, but you can use an indexed file. If you include literals or expressions in this directive, PxPlus treats them as prompts for the user.

You can include format masks, as in A$=STR(.01:"0.00"). If you omit the format mask for a numeric in the OBTAIN statement, the 'DP' (Decimal Point Symbol) and 'TH' (Thousands Separator) system parameters are ignored for European decimal settings.

Note:
OBTAIN performs in the same way as the INPUT directive except that the user's input is not echoed on the screen. This can be useful for such applications as passwords.

See Also

ACCEPT Read Single Keystroke
INPUT Get Input from Terminal
'ME' Begin Edit Mode
'BI' Begin Input Transparency
Data Format Masks

Example

obtain 'CS',@(5,5),"Enter your password:",C$

->run
Enter your password:|

The password, "TEST" in this example, is not echoed, but C$ will return the value.

->?C$
TEST