| Previous | Contents | Index | 
      
   DECLARE LONG rec-num 
   MAP (CUSREC) WORD cus_num                                              & 
           STRING cus_nam = 20, cus_add = 20, cus_city = 10, cus_zip = 9 
   OPEN "CUS_ACCT.DAT" FOR INPUT AS  #1                                   & 
         RELATIVE FIXED, ACCESS MODIFY,                                   & 
         MAP CUSREC 
   INPUT "Which record number would you like to view";rec_num 
   GET #1, RECORD REC_NUM, REGARDLESS 
   PRINT "The customer's number is ";CUS_NUM 
   PRINT "The customer's name is ";cus_nam 
   PRINT "The customer's address is ";cus_add 
   PRINT "The customer's city is ";cus_city 
   PRINT "The customer's zip code is ";cus_zip 
   CLOSE #1 
   END 
 | 
The GETRFA function returns the record's file address (RFA) of the last record accessed in an RMS file open on a specified channel.
      
DECLARE RFA R_ARRAY(1 TO 100) 
   .
   .
   .
FOR I% = 1% TO 100% 
    PUT #1 
    R_ARRAY(I%) = GETRFA(1) 
NEXT I% 
 | 
The GOSUB statement transfers control to a specified line number or label and stores the location of the GOSUB statement for eventual return from the subroutine.
      GOSUB subroutine_1 . . . subroutine_1: . . . RETURN  | 
The GOTO statement transfers control to a specified line number or label.
      
IF answer = 0 
    THEN GOTO done 
END IF 
   .
   .
   .
done: 
     EXIT PROGRAM 
 | 
The handler statement marks the beginning of a detached handler.
Handler-name must be a valid BASIC identifier and must not be the same as any label, DEF, DEF*, SUB, FUNCTION or PICTURE name.
      
WHEN ERROR USE err_handler 
   .
   .
   .
END WHEN 
HANDLER err_handler 
   IF ERR = 50 THEN PRINT "Insufficient data" 
       RETRY 
       ELSE EXIT HANDLER 
   END IF 
END HANDLER 
 | 
The IF statement evaluates a conditional expression and transfers program control depending on the resulting value.
      
IF Update_flag = True 
THEN 
      Weekly_salary = New_rate * 40.0 
      UPDATE #1 
      IF Dept <> New_dept 
      THEN 
            GET #1, KEY #1 EQ New_dept 
            Dept_employees = Dept_employees + 1 
            UPDATE #1 
      END IF 
      PRINT "Update complete" 
ELSE 
      PRINT "Skipping update for this employee" 
END IF 
 | 
The INKEY$ function reads a single keystroke from a terminal opened on a specified channel and returns the typed character.
      
    PROGRAM Inkey_demo 
 
    DECLARE STRING KEYSTROKE 
Inkey_Loop: 
    WHILE 1% 
      KEYSTROKE = INKEY$(0%,WAIT) 
 
      SELECT KEYSTROKE 
          CASE '26'C 
               PRINT "Ctrl/Z to exit" 
               EXIT Inkey_Loop 
          CASE CR,LF,VT,FF 
               PRINT "Line terminator" 
          CASE "PF1" TO "PF4" 
               PRINT "P function key" 
          CASE "E1" TO "E6", "F7" TO "F9", "F10" TO "F20" 
               PRINT "VT200 function key" 
          CASE "KP0" TO "KP9" 
               PRINT "Application keypad key" 
          CASE < SP 
               PRINT "Control character" 
          CASE '127'C 
               PRINT "<DEL>" 
          CASE ELSE 
               PRINT 'Character is "'; KEYSTROKE; '"' 
       END SELECT 
    NEXT 
 
    END PROGRAM 
 | 
The INPUT statement assigns values from your terminal or from a terminal-format file to program variables.
      DECLARE STRING your_name INPUT "What is your name",your_name  | 
      What is your name ?  | 
      DECLARE STRING your_name INPUT "What is your name";your_name  | 
      What is your name?  | 
      
DECLARE STRING var_1,   & 
        INTEGER var_2 
INPUT "The first variable";var_1, "The second variable";var_2 
 | 
Output
      The first variable? name The second variable? 4  | 
The INPUT LINE statement assigns a string value (including the line terminator in some cases) from a terminal or terminal-format file to a string variable.
      DECLARE STRING your_name INPUT LINE "Name",your_name  | 
      Name ?  | 
      DECLARE STRING your_name INPUT LINE "Name";your_name  | 
      Name?  | 
| Hex code | ASCII char | Character name | 
|---|---|---|
| 0A | LF | Line Feed | 
| 0B | VT | Vertical Tab | 
| 0C | FF | Form Feed | 
| 0D | CR | Carriage Return | 
| 0D0A | CRLF | Carriage Return/Line Feed | 
| 1B | ESC | Escape | 
| Previous | Next | Contents | Index |