Доступ к отображаемой памяти 143

Store Procedure Store (var F: File); Virtual;

Перекрывается: Иногда

Сохраняет текущее состояние объекта в файле F: вначале вызывает унаследованный метод TEMSVector.Sfore, затем записывает в файл заголовок RegHeadTEMSMatrix и поля Minlndl, Maxindl, Minlnd2, Maxlnd2. Перед обращением к методу файловую переменную F необходимо связать с уже существующим нетипизированным файлом, а сам файл должен быть открыт для записи блоками длиной в 1 байт.

GetVecIndex Function GetVecIndex (Indl, Ind2: Longint) :

Longint;

Осуществляет преобразование двух индексов Indl, Ind2 к единственному индексу родительского объекта TEMSVector с нулевой левой границей.

Все остальные методы объекта — Getltem, Setltem, Byteltem, Doubleltem, Extendedltem, Integerltem, Lognlntltem, Realltem и Singleltem — представляют собой двумерные варианты одноименных методов объекта TEMSVector.

TEMSAiray________________________________________

Объект TEMSArray содержит средства для создания в EMS— памяти массива произвольной размерности и работы с ним. Все индексные выражения пеоедаются методам объекта в виде списка, что не очень удобно, поэтому помимо объекта TEMSArray в модуле содержатся также объекты TEMSVector и TEMSMatrix. Многомерный массив TEMSArray порожден от TEMSVector и осуществляет соответствующий пересчет индексов в единственный индекс объекта—родителя с нулевой левой границей. Для этого служит метод GetVecIndex, использующий стандартное правило Паскаля: элементы массива располагаются в памяти так, что при переходе от одного элемента к соседнему наиболее быстро меняется самый правый индекс.

Поля

NIndex NIndex: Longint; Только чтение Содержит количество измерений массива.

Index Index: PIndex;

Указатель на размещенный в динамической памяти массив из NIndex троек чисел типа Longint. Каждая (А—я) тройка содержит левую (первое число), правую (второе число) границы индексов по данному (А—му) измерению и множитель (третье число), упрощающий пересчет многомерных индексных измерений в единственный индекс базового объекта TEMSVector. Множитель показывает на сколько нужно умножить А—ый индекс многомерного массива, чтобы получить положение элемента внутри одномерного массива с нулевой левой границей.

Методы