Math primitives 3 (WinRunner, TSL)
Service Functions – Math / WinRunner
Convert matrix to text table
public function mx_array_2_table(inout mxTable[], inout dtTable[], in separator, in skip_empty) {
auto col_count, row_count, i,j;
auto row, s_value;
if (skip_empty != TRUE) skip_empty = FALSE;
if (separator == "") separator = "\t";
col_count = mxTable[0, "sys", "colCount"];
row_count = mxTable[0, "sys", "rowCount"];
delete dtTable[];
row = 0;
for (i=1;i<=row_count;i++) {
s_value = "";
for (j=1;j<=col_count;j++) {
if ((skip_empty) && (mxTable[i,j] == "")) continue;
s_value = str_list_add(s_value, mxTable[i,j], separator);
}
if ((skip_empty) && (s_value == "")) continue;
row++;
dtTable[row] = s_value;
}
dtTable[0] = row;
return(E_OK);
}
Find a row in matrix by key value
public function mx_find_regex_row(inout mxTable[], in item_regex, in col, out item, out item_row) {
auto rc, i;
auto col_count, row_count;
col_count = mxTable[0, "sys", "colCount"];
row_count = mxTable[0, "sys", "rowCount"];
if (col > col_count) return(E_GENERAL_ERROR);
for (i=1;i<=row_count;i++) {
rc = match(mxTable[i,col], item_regex);
if (rc>0) {
item = mxTable[i,col];
item_row = i;
return(E_OK);
}
}
return(E_NOT_FOUND);
}
Find a column in matrix by key value
public function mx_find_regex_col(inout mxTable[], in item_regex, in row, out item, out item_col) {
auto rc, i;
auto col_count, row_count;
col_count = mxTable[0, "sys", "colCount"];
row_count = mxTable[0, "sys", "rowCount"];
if (row > row_count) return(E_GENERAL_ERROR);
for (i=1;i<=col_count;i++) {
rc = match(mxTable[row,i], item_regex);
if (rc>0) {
item = mxTable[row,i];
item_col = i;
return(E_OK);
}
}
return(E_NOT_FOUND);
}

