DEC Text Processing Utility Data Types
3.11 String Data Type
The maximum length for a string is 65,535 characters. A restriction of the
DECTPU compiler is that a string constant (an open quotation mark, some
characters, and a close quotation mark) must have both its opening and closing
quotation marks on the same line. While a string can be up to 65,535 characters
long, a line in a DECTPU buffer can only be 32767 characters long. If you try
to create a line that is longer than 32767 characters, DECTPU truncates the
inserted text to the amount that fills the line to 32767 characters.
Many DECTPU built-in procedures return a value of the string data type. The
ASCII built-in procedure, for example, returns a string for the ordinal value that
you use as a parameter. The following statement returns the string
"K" in the
variable my_char:
my_char := ASCII (75);
To replicate a string, specify the string to be reproduced, then the multiplication
operator ( * ), and then the number of times you want the string to be replicated.
For example, the following DECTPU statement inserts 10 underscores into the
current buffer at the editing point:
COPY_TEXT ("_" * 10)
The string to be replicated must be on the left-hand side of the operator. For
example, the following DECTPU statement produces an error:
COPY_TEXT (10 * "_")
To reduce a string, specify the string to be modified, then the subtraction operator
(–), and then the substring to be removed. Table 3–2 shows the effects of two
string-reduction operations.
Table 3–2 Effects of Two String-Reduction Operations
DECTPU Statement Result
COPY_TEXT ("FILENAME.MEM"–"FILE") Inserts the string "NAME.MEM" into
the current buffer at the editing point.
COPY_TEXT ("woolly"–"wool") Inserts the string "ly" into the current
buffer at the editing point.
3.12 Unspecified Data Type
An unspecified value is the initial value of a variable after it has been compiled
(added to the DECTPU symbol table). In the following example, the COMPILE
built-in procedure creates the variable x and initially gives it the data type
unspecified unless x has previously been declared as a global variable:
COMPILE ("x := 1");
An assignment statement that creates a variable must be executed before a data
type is assigned to the variable. In the following example, when you use the
EXECUTE built-in procedure to run the program that is stored in the variable
prog, the variable x is assigned an integer value:
prog := COMPILE ("x := 1");
EXECUTE (prog);
DEC Text Processing Utility Data Types 3–21