文字列の例
文字列の使用例.
説明
この例は文字列変数を取得し,Scilabに戻すものです
ゲートウェイソース
#include "api_scilab.h" int stringExample(char *fname,void* pvApiCtx) { SciErr sciErr; int* piAddr = NULL; int iType = 0; int iRet = 0; CheckInputArgument(pvApiCtx, 1, 1); CheckOutputArgument(pvApiCtx, 0, 1); sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } if(isStringType(pvApiCtx, piAddr)) { if(isScalar(pvApiCtx, piAddr)) { char* pstData = NULL; iRet = getAllocatedSingleString(pvApiCtx, piAddr, &pstData); if(iRet) { freeAllocatedSingleString(pstData); return iRet; } iRet = createSingleString(pvApiCtx, nbInputArgument(pvApiCtx) + 1, pstData); if(iRet) { freeAllocatedSingleString(pstData); return iRet; } freeAllocatedSingleString(pstData); } else { int iRows = 0; int iCols = 0; char** pstData = NULL; iRet = getAllocatedMatrixOfString(pvApiCtx, piAddr, &iRows, &iCols, &pstData); if(iRet) { freeAllocatedMatrixOfString(iRows, iCols, pstData); return iRet; } sciErr = createMatrixOfString(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iRows, iCols, pstData); if(sciErr.iErr) { freeAllocatedMatrixOfString(iRows, iCols, pstData); printError(&sciErr, 0); return sciErr.iErr; } freeAllocatedMatrixOfString(iRows, iCols, pstData); } AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1; } else { AssignOutputVariable(pvApiCtx, 1) = 0; } return 0; }
Scilab テストスクリプト
a = "Scilab"; b = ["New","Scilab";"API","functions"]; if stringExample(a) <> a then pause, end if stringExample(b) <> b then pause, end
Report an issue | ||
<< freeAllocatedMatrixOfString | string | api_scilab >> |