String writing (Scilab gateway)
How to write matrices of string in a gateway.
Syntax
Input argument profile:
SciErr createMatrixOfString(void* _pvCtx, int _iVar, int _iRows, int _iCols, const char* const* _pstStrings)
SciErr createMatrixOfWideString(void* _pvCtx, int _iVar, int _iRows, int _iCols, const wchar_t* const* _pwstStrings)
Named variable profile:
SciErr createNamedMatrixOfString(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const char* const* _pstStrings)
SciErr createNamedMatrixOfWideString(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const wchar_t* const* _pwstStrings)
Arguments
- _pvCtx
Scilab environment pointer, pass in "pvApiCtx" provided by api_scilab.h.
- _iVar
Position in the Scilab memory where you want to put the variable
- _pstName
Name of the variable for "named" functions.
- _iRows
Number of rows of the new variable
- _iCols
Numbers of columns of the new variable
- _pstStrings
Address of array of char* (size: _iCols * _iRows)
- SciErr
Error structure where is stored errors messages history and first error number.
Description
This help describes how matrix of strings can be handled through the Scilab API.
Gateway Source
#include "api_scilab.h" int write_string(char *fname,void* pvApiCtx) { SciErr sciErr; //variable info : matrix of string 2 x 3 int iRows = 2; int iCols = 3; char** pstData = NULL; //data to put in the new variable char string11[] = "may"; char string21[] = "be"; char string12[] = "the"; char string22[] = "with"; char string13[] = "puffin"; char string23[] = "you"; //alloc new array pstData = (char**)malloc(sizeof(char*) * iRows * iCols); //copy data address to the "main" array pstData[0] = string11; pstData[1] = string21; pstData[2] = string12; pstData[3] = string22; pstData[4] = string13; pstData[5] = string23; //create the variable sciErr = createMatrixOfString(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iRows, iCols, pstData); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } //free container free(pstData); //assign allocated variables to Lhs position AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1; return 0; }
Scilab test script
Report an issue | ||
<< String reading (Scilab gateway) | Low level functions | UpdateStack >> |