Given an angle in radians, returns the number of degrees.
The DIV0 function divides num_expr1 by num_expr2. If num_expr2 (divisor) is 0, 0 is returned.
10 PRINT DIV0(0.8, 0.000004)
PRINT DIV0(0.8, 0.0)
PRINT DIV0(6, 3)
PRINT DIV0(6, 0)
20 END
RNH
200000
0
2
0
The DTYPE function returns as an integer value, the data type of an expression or dynamic variable: 1 = string, 2 = integer, 3 = real.
10 DECLARE DYNAMIC x
20 x = 45.6
30 PRINT DTYPE(x)
40 END
RNH
3
EDIT$ performs one or more editing operations, depending on the value of the integer expression, on the supplied string argument. The integer expression is one of the integers below, or a sum of integers below for the desired edit functions:
| Value | Edit Operation |
|---|---|
| 1 | Trim parity bits. |
| 2 | Discard all spaces and tabs. |
| 4 | Discard characters: CR, LF, FF, ESC, RUBOUT and NULL. |
| 8 | Discard leading spaces and tabs. |
| 16 | Reduce spaces and tabs to One space. |
| 32 | Convert lower case to upper case. |
| 64 | Convert "[" to "(" and "]" to ")". |
| 128 | Discard trailing spaces and tabs. |
| 256 | Do not alter characters inside quotes. |
Returns the number of elements in a string expression which contains a list of elements. Str_expr1 is the string containing the list of elements. Str_expr2 is the separator. A comma is the default separator.
ELEMENT$ returns the element from str_expr1 which is specified by the num_expr. Str_expr1 contains a set of elements with separators between them. The default separator is a comma:
10 LET a$ = ELEMENT$('ADD,DEL,EXIT',2)
20 PRINT a$
30 END
RNH
DEL
You can specify a separator other than the comma with str_expr2.
10 LET sentence$ = 'This is a test.'
20 LET a$ = ELEMENT$(sentence$,2,' ')
30 PRINT a$
RNH
is
More than one separator in a row returns a null for the corresponding element.
10 LET sentence$ = 'This,, is, a, test'
PRINT ELEMENT$(sentence$, 2)
20 END
RNH
Returns a string containing a number converted to the base specified. Num_expr is the value to convert. Num_int is the base to convert. For instance, '2' indicates binary, etc.
INTOUCH carries 15 digits of precision. The EPS(number) returns the smallest value, which when added to "number" yields the next number.
This function evaluates the expression described in str_expr, and returns the result. If the variable being assigned the result is dynamic, the function puts the result in whatever data type the expression result was in. If the variable is NOT dynamic, and the result is the wrong data type, a "Data type mismatch" error is returned.
10 LINE INPUT 'Enter an expression': a$
PRINT 'The result is '; EVAL(a$)
20 END
RNH
Enter an expression? 5 + 4
The result is 9
EXLABEL$ returns the label and line number executing when the last exception occurred, e.g., DO_INPUT.4
EXLINE returns the line number executing when the last exception occurred.
EXP function returns the value of the mathematical constant, "e", raised to a specified power.
EXTEXT$ returns explanatory text associated with a specified exception number.
EXTYPE returns the number of the last exception that occurred. It is returned as an integer.
Returns the constant 0. It is returned as an integer.
FILESPEC$ parses a file specification and returns either a full file specification or specific file specification fields.
Str_expr1 is the file specification to be parsed. If no file specification is given, the device and directory you are currently running from are returned.
Str_expr2 is a list of field names, separated by commas, which are to be returned. The field names are:
| DEVICE | device name | |
| DIRECTORY | directory name | |
| NAME | file name | |
| TYPE | type or extension name | |
| VERSION | file version number | |
| LOCATION | device and directory names | |
| ALL or "" | full file specification |
Str_expr3 is the default file specification. This parameter is optional.
FILESPEC$ can be used in various formats.
10 PRINT FILESPEC$('x.y', 'ALL')
PRINT FILESPEC$('', 'ALL')
20 END
RNH
USER:[FRED]X.Y;
USER:[FRED].;
10 x$ = 'TTI_RUN:CLIENT'
PRINT FILESPEC$(x$, 'ALL', '.dat')
20 END
RNH
STORAGE:[INTOUCH]CLIENT.DAT;
10 PRINT FILESPEC$('tti_run:client', 'ALL', '.dat')
PRINT FILESPEC$('tti_run:client', 'LOCATION')
PRINT FILESPEC$('tti_run:client', 'LOCATION, NAME')
PRINT FILESPEC$('tti_run:client.dat;1')
20 END
RNH
STORAGE:[INTOUCH]CLIENT.DAT;
STORAGE:[INTOUCH]
STORAGE:[INTOUCH]CLIENT
STORAGE:[INTOUCH]CLIENT.DAT;1
Given a file name to find, returns the complete file specification of the first file found that matches the name given. If no file is found, the function returns a null string.
FINDFILE$ calls can be nested if the inner call has only one argument (i.e., the file specification, but no index number).
| str_expr | The name of the file to search for. This can be just part of the full file specification. | |
| int_expr | Which file specification to return if multiple files are found. This parameter is optional. The default is to return the first file found. | |
| Result | The complete file specification of the file found. |
10 PRINT FINDFILE$('tti_run:*.int')
RNH
DUA0:[INTOUCH]ALIENS.INT;5
10 DO
LINE INPUT 'File.Spec': spec$
IF _EXIT THEN EXIT DO
FOR i = 1 TO 9999
file$ = FINDFILE$(spec$, i)
IF file$ = '' THEN EXIT FOR
PRINT file$
NEXT i
LOOP
20 END
RNH
File specification? TTI_RUN:CLIENT.*
DUA0:[INTOUCH]CLIENT.DAT;7
DUA0:[INTOUCH]CLIENT.DEF;3
DUA0:[INTOUCH]CLIENT.INT;1
DUA0:[INTOUCH]CLIENT.SAV;1
DUA0:[INTOUCH]CLIENT.STR;16
Given an expression and a format, returns the result of the expression in the format indicated.
The '@' format character causes the character not to be translated by the formatter. The '<' and '>'are treated like an '@' character. You can justify a character string, but avoid zero suppression and zero insertion.
The FORMAT$ function takes an expression of any data type for the data to format (the first argument), including string expressions.
10 z$ = FORMAT$('1234567', '###~-####')
PRINT 'Phone number: '; z$
20 END
RNH
Phone number: 123-4567
The FORMAT$ function returns all asterisks "*" in the case of overflow.
10 z$ = FORMAT$(12.23,'#.##')
PRINT z$
20 END
RNH
****
FORMAT$() returns the same string data as given by the following:
PRINT USING str_expr: expr
The FORMAT$ function supports the DATE format and date arguments. Given a date in YYMMDD or CCYYMMDD format, FORMAT$ returns the date in the date format requested.
FORMAT$(z$, '{DATE [argument]}?')
The ? can be replaced with a mask. If no date argument is provided, the default is MDCY.
10 z1$ = FORMAT$('950401', '{DATE MDCY}?')
z2$ = FORMAT$('950401', '{DATE MDCY}##/##/####')
z3$ = FORMAT$('19950401', '{DATE MDCY}?')
z4$ = FORMAT$('19950401', '{DATE MDCY}##/##/####')
20 PRINT z1$, z2$
PRINT z3$, z4$
30 END
RNH
04011995 04/01/1995
04011995 04/01/1995
| DATE Argument |
YYMMDD Input |
Result | CCYYMMDD Input |
Result |
|---|---|---|---|---|
| none | 950207 | 02071995 | 19950207 | 02071995 |
| YMD | 950207 | 950207 | 19950207 | 950207 |
| CYMD | 950207 | 19950207 | 19950207 | 19950207 |
| MDY | 950207 | 022195 | 19950207 | 022195 |
| MDCY | 950207 | 02071995 | 19950207 | 02071995 |
| DMY | 950207 | 070295 | 19950207 | 070295 |
| DMCY | 950207 | 07021995 | 19950207 | 07021995 |
| DMONY | 950207 | 07-Feb-95 | 19950207 | 07-Feb-95 |
| DMONCY | 950207 | 07-Feb-1995 | 19950207 | 07-Feb-1995 |
| MONTHDY | 950207 | February 7, 95 | 19950207 | February 7, 95 |
| MONTHDCY | 950207 | February 7, 1995 | 19950207 | February 7, 1995 |
The FORMAT$ function supports character rotation. The ROTATE option rotates the last nn characters of a string to the first position in the string.
FORMAT$(z$, '{ROTATE n}?')
The ? can be replaced with a mask.
10 z1$ = FORMAT$('5552527800', '{ROTATE 3}?')
z2$ = FORMAT$('5552527800', '{ROTATE 3}###~ ###~-####')
z3$ = FORMAT$('TuneTommy', '{ROTATE 5}?')
z4$ = FORMAT$('TuneTommy', '{ROTATE 5}#####~ ####')
20 PRINT z1$, z2$
PRINT z3$, z4$
30 END
RNH
8005552527 800 555-2527
TommyTune Tommy Tune
The FORMAT$ function supports the TIME format. Given a military standard time in HHMM, HH:MM, HHMMSS or HH:MM:SS format, FORMAT$ returns the time as HH:MM AM/PM or HH:MM:SS AM/PM.
FORMAT$(z$, '{TIME}?')
10 t1$ = FORMAT$('1022', '{TIME}?')
t2$ = FORMAT$('19:45:36', '{TIME}?')
20 PRINT t1$
PRINT t2$
30 END
RNH
10:22 AM
07:45:36 PM
The FORMAT$ function supports the ZIPCODE format. Given a 5, 6 or 9 digit zipcode, FORMAT$ returns a formatted zipcode.
FORMAT$(z$, '{ZIPCODE}?')
10 z1$ = FORMAT$('92126', '{ZIPCODE}?')
z2$ = FORMAT$('K8A3P9', '{ZIPCODE}?')
z3$ = FORMAT$('931327845', '{ZIPCODE}?')
20 PRINT '5 character zipcode : '; z1$
PRINT '6 character zipcode : '; z2$
PRINT '9 character zipcode : '; z3$
30 END
RNH
5 character zipcode : 92126
6 character zipcode : K8A 3P9
9 character zipcode : 93132-7845
Given a number, returns the fractional part of the number.
Given the number of seconds since the INTOUCH base date, this function returns the date and time in one of the formats given below.
Where float_expr is the number of seconds since the INTOUCH base date. The default is the current date and time. January 1, 1600 00:00:00 is considered the second 0.
| Value (int_var) | Output Data Format |
|---|---|
| 0 | CCYYMDD HHMMSS |
| 1 | MMDDCCYY HHMMSS |
| 2 | DDMMCCYY HHMMSS |
| 3 | DD-Mon-CCYY HH:MM:SS |
| 4 | Month DD, CCYY HH:MM:SS |
10 PRINT FULLTIME$
20 sec = SECONDS('19910621 115042')
30 PRINT FULLTIME$(sec, 0)
40 PRINT FULLTIME$(sec, 1)
50 PRINT FULLTIME$(sec, 2)
60 PRINT FULLTIME$(sec, 3)
70 PRINT FULLTIME$(sec, 4)
80 END
RNH
19910621 123756
19910621 115042
06211991 115042
21061991 115042
21-Jun-1991 11:50:42
June 21, 1991 11:50:42
This function changes the plain text in str_expr1 into a hashed eight-byte string value. It can be used to develop one-way hashed passwords. The optional text in str_expr2 and optional int_expr can be used to further make the hashed value unique.
10 password$ = HASH$('TRUTH')
INPUT 'Password': pwd$
IF HASH$(pwd$) = password$ THEN
PRINT 'That was the correct password.'
ELSE
PRINT 'That was not the correct password.'
END IF
20 END
RNH
Password? MONEY
That was not the correct password.
INT returns the whole portion of a real number as a real number.
INTEGER changes any numeric expression into an integer value and assigns the integer value to the variable specified.
IP truncates the value of a real number at the decimal point and returns the integer portion.
The ITEM function returns the number of the first item that matches the whole or partial item name given. A negative number is returned if more than one item matches.
10 z = ITEM('ADD,EXIT,EXTRACT,MODIFY', 'MOD')
PRINT z
20 END
RNH
4
10 z = ITEM('ADD,EXIT,EXTRACT,MODIFY', 'EX')
PRINT z
20 END
RNH
-2
Given an array and a dimension number, returns the low bound for that dimension. The default dimension is 1.
LCASE returns a string expression with all letters in lower case.
LEFT$ returns the leftmost nn characters from a string. Int_expr is the last character position to be included in the resulting string.
LEN returns the length of a string. It returns an integer.
LOG returns the natural logarithm of a specified number.
LOG2 returns a number's base 2 logarithm.
LOG10 returns a number's common logarithm.
LPAD$ pads a string on the left with pad characters. The default pad character is a space.
10 PRINT LPAD$('123', 6, '0')
20 END
RNH
000123
Removes all leading spaces (those on the left side of the string).
Str_expr1 contains a list of elements separated by commas. Str_expr2 contains a string. MATCH compares str_expr2 with each of the elements in str_expr1 and gives the number of the element that matches.
Quoted data is treated as one element; the quotes are not removed.
10 INPUT 'Which procedure (ADD,DEL,QUIT)': pro$
20 LET x = MATCH('ADD,DEL,QUIT', pro$)
30 ON x GOSUB 50, 70, 90
40 GOTO 10
50 PRINT 'Adding...'
60 RETURN
70 PRINT 'Deleting...'
80 RETURN
90 END
MAX(x,y) returns the larger of the two values x and y.
Returns the maximum number of characters that a string variable can contain. Since all string variables are variable length, with a maximum of 65535, this function always returns 65535.
Returns the largest number available in this implementation of INTOUCH.
Returns the total number of elements that can be contained in an array.
MID$ or MID returns a substring from the middle characters of a specified string, leaving the string unchanged. Int_expr1 is the starting position of the substring, and int_expr2 is the length of the substring. MID$(str_expr,int_expr1) will return the rest of the string.
10 a$ = 'beginmiddleend'
middle$ = MID$(a$, 6, 6)
end$ = MID$(a$, 6)
PRINT middle$, end$
20 END
RNH
middle middleend
MIN(x,y) returns the lesser of the values x and y.
Gives the remainder of one number divided by another.
Given the ASCII name of a character, returns the location of that character in the ASCII character table. It returns an integer number.
Given the location of a character in the ASCII character table, returns the name of that character.
PARSE$ splits a string into tokens and returns each token separated by a space. Letters are upper-cased, except within quotes. Tail comments are ignored. Embedded "$" characters are allowed. The maximum line length is 1024 characters.
a$ = 'company$ = abc$ +"and sons" !rnn'
PRINT PARSE$(a$)
RNH
COMPANY$ = ABC$ + "and sons"
Matches any characters in text (str_expr1) with the pattern (str_expr2). Str_expr1 is the text to search and str_expr2 is the pattern being searched for. Returns the location of the first character in the text that contains the pattern. If the characters cannot be found, returns zero.
PATTERN Options and Examples
Pattern options can be mixed and matched with unlimited complexity.
Matches any character in the text.
10 IF PATTERN('The quick brown fox', &
'f?x') > 0 THEN
PRINT 'Found'
END IF
20 END
RNH
Found
Matches zero or more of a character that precedes the asterisk.
10 IF PATTERN('aaa 03/26/92', 'a* *03/26/92') > 0 THEN
PRINT 'The date is found'
END IF
20 END
RNH
The date is found
Used to define a group of characters. The characters in the enclosed group can be ranges such as {a-z} or individual characters such as {AQX}.
10 text$ = 'A1N5V7N0'
rule_str$ = '{A-Z}{0-9}{A-Z}{0-9}{A-Z}{0-9}{A-Z}{0-9}'
IF PATTERN(text$, rule_str$) > 0 THEN
PRINT 'Driver's licence is correct'
END IF
20 END
RNH
Driver's licence is correct
Looks for characters that are NOT {^A-Z}. The result of line 30 below shows the difference between using '?' and {^}.
10 PRINT PATTERN('Mary J. Smith','{^Mar}')
20 PRINT PATTERN('Mary J. Smith','J. {^S}')
30 PRINT PATTERN('Mary J. Smith','J. S?')
40 END
RNH
4
0
6
The '~' (quote) character looks for a pattern of text that IS an * (stands for itself).
10 text$ = '$4,670.00'
IF PATTERN(text$, '$~4, 670.00') > 0 THEN
PRINT 'Your text is correct'
END IF
20 END
RNH
Your text is correct
Looks for text in str_expr1 that matches the enclosed groups.
10 text$ = 'The area code is 619'
IF PATTERN(text$, 'is {<619|714|916>}') > 0 THEN
PRINT 'Your area code is on the list'
END IF
20 END
RNH
Your area code is on the list