matread statement

The matread statement reads the specified item from the optionally specified file.var, or if not specified, the default file.var, and stores one attribute per element in the dimensioned array.


 matread array.var from {file.var,} ID.exp {then|else statement.block}


Warning: Using a matread from a program that is called from dictionary item is not recommended.
This statement can optionally be written matread or read. If mat is omitted, a matrix read can be determined by the definition of the variable, array.var. If no dim statement appears, it is automatically treated as a dynamic array.
  • The else clause is taken when the item is not on file.
  • The then condition is taken when the item is read successfully.

If a binary item is read, system(0) is set to 10. The variable string consists of the hexadecimal FID in attribute 1 and the hexadecimal frame in attribute 2.

If the array is defined by a file statement, the file variable is not used.

  • If the number of attributes read in the item is less than the dimensioned array size, the trailing array elements are assigned a null string value.
  • If more attributes are present in the item read than elements in the previously dimensioned array, then the last array element contains the extra attributes, with each attribute delimited by an attribute mark. Everything functions properly while the last array element remains unreferenced.


This example writes the dimensioned array a on the default file, using a as the item-ID. Although there are only five elements in the array, each corresponds to two attributes (separated by attribute marks). Thus, ten total attributes are written.

 open ’customer’ to cust.fv
 dim customer.rec(20)
 matread customer.rec from cust.fv,item-ID
 dim a(5)
 mat a = "xyz":@am:"abc"
 matwrite a on "a"