The SDL Component Suite is an industry leading collection of components supporting scientific and engineering computing. Please visit the SDL Web site for more information....



CopyDataFromArray


Unit:SDL_datatable
Class: TDataTable
Declaration: [1] function CopyDataFromArray (Src: TDouble2DArray; SrcColLo, SrcRowLo, SrcColHi, SrcRowHi, Col, Row: integer): integer;
[2] function CopyDataFromArray (Src: TInt2DArray; SrcColLo, SrcRowLo, SrcColHi, SrcRowHi, Col, Row: integer): integer;
[3] function CopyDataFromArray (Src: TDoubleArray; FirstElem, LastElem, Col, Row: integer; AsColumn: boolean): integer;
[4] function CopyDataFromArray (Src: TIntArray; FirstElem, LastElem, Col, Row: integer; AsColumn: boolean): integer;

The method CopyDataFromArray copies the cells of the dynamic array Src into the data table. The parameters Col and Row specify the target column and row to be used in the data table, (the cell Src[SrcColLo,SrcColHi] is copied to self[Col,Row], all other cells are copied to higher indices, see figure below).

The versions [3] and [4] allow copying a one-dimensional array. In this case the parameter AsColumn controls whether the source array is copied into a column (AsColumn = TRUE) or into a row (AsColumn = FALSE) of the data table.

If the source array does not fit into the data table all excess cells are ignored.

Please note that copying the data does not influence the type of variables (see section Nominal and Ordinal Data for details). If a particular column of the table contains nominal values, the copied data are considered to be the corresponding ordinals.

The method return the following error codes:

 0 ... everything is OK
-1 ... the source array Src has zero size
-2 ... SrcColLo and/or SrcColHi are out of range (valid range: 0 to length(Src)-1)
-3 ... SrcRowLo and/or SrcRowHi are out of range (valid range: 0 to length(Src[0])-1)
-4 ... FirstElem and/or LastElem are out of range (valid range: 0 to length(Src)-1)
-5 ... Col and/or Row are out of range (valid ranges: 1 ≤ ColNrOfColumns, and 1 ≤ RowNrOfRows)

Hint: Setting both the ...Lo and ...Hi parameters to zero is a shortcut for specifying the entire range of cells in the particular dimension. For example, CopyFromArray (mat1,0,4,0,6,1,1); copies the entire rows 4 to 6 of the Src array to the data table at position [1,1] (because both the SrcColLo and the SrcColHi parameters are zero).


Last Update: 2023-Dec-14