Вот несколько функций для операций с двухмерными массивами. Самый простой путь для создания собственной библиотеки. Процедуры SetV и GetV позволяют читать и сохранять элементы массива VArray (его Вы можете объявить как угодно). Например:
type
VArray : Array[1..1] of double;var
X : ^VArray; NR, NC : Longint; begin
NR := 10000; NC := 100; if AllocArray(pointer(X), N*Sizeof(VArray)) then exit; SetV(X^, NC, 2000, 5, 3.27); { X[2000,5] := 3.27 }end;
function AllocArray(var V : pointer; const N : longint) : Boolean; begin {распределяем память для массива V размера N}
try GetMem(V, N); except ShowMessage('ОШИБКА выделения памяти. Размер:' + IntToStr(N)); Result := True; exit; end; FillChar(V^, N, 0); {в случае включения длинных строк заполняем их нулями} Result := False;end;
procedure SetV(var X : Varray;const N,ir,ic : LongInt;const value : double); begin {заполняем элементами двухмерный массив X размером ? x N : X[ir,ic] := value}
X[N*(ir-1) + ic] := value;end;
function GetV(const X : Varray; const N, ir,ic : Longint) : double; begin {возвращаем величины X[ir,ic] для двухмерного массива шириной N столбцов}