Scilab-Branch-6.1-GIT
- Scilabヘルプ
- API Scilab
- legacy
- List manipulation
- isListType, isTListType, isMListType
- 論理値の読み込み (Scilabゲートウェイ)
- 論理値を書き込む (Scilabゲートウェイ)
- 疎論理値の読み込み (Scilabゲートウェイ)
- 疎論理値を書き込む (Scilabゲートウェイ)
- リストを作成する (Scilab ゲートウェイ)
- doubleの読み込み (Scilab ゲートウェイ)
- double書き込み (Scilab ゲートウェイ)
- 子要素を取得 (Scilab ゲートウェイ)
- 要素数 (Scilab ゲートウェイ)
- 整数の読み込み (Scilab ゲートウェイ)
- 整数を書き込む (Scilab ゲートウェイ)
- ポインタの読み込み (Scilab ゲートウェイ)
- ポインタ書き込み (Scilab ゲートウェイ)
- 多項式の読み込み (Scilab ゲートウェイ)
- 多項式の書き込み (Scilab ゲートウェイ)
- 疎行列の読み込み (Scilab ゲートウェイ)
- 疎行列の書き込み (Scilab ゲートウェイ)
- 文字列の読み込み (Scilab ゲートウェイ)
- 文字列の書き込み (Scilab ゲートウェイ)
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
However, this page did not exist in the previous stable version.
要素数 (Scilab ゲートウェイ)
リスト(list, mlist, tlist)中の要素数を取得する方法.
呼び出し手順
SciErr getListItemNumber(void* _pvCtx, int* _piAddress, int* _piNbItem)
引数
- _pvCtx
Scilab環境ポインタ, api_scilab.hで定義された"pvApiCtx"で指定.
- _piAddress
リストのアドレス.
- _piNbItem
返される要素数.
- SciErr
エラーメッセージの履歴と最初のエラー番号が保存されるエラー構造体.
説明
このヘルプはリスト(list, mlist, tlist)中の要素数を取得する方法を説明します.
ゲートウェイソース
#include "api_scilab.h" int get_list_info(int* _piAddress); void insert_indent(void); static int iLocalTab = 0; int common_list(char *fname,void* pvApiCtx) { SciErr sciErr; int *piAddr = NULL; CheckInputArgument(pvApiCtx, 1, 1); sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } get_list_info(piAddr); AssignOutputVariable(pvApiCtx, 1) = 0; return 0; } int get_list_info(int* _piAddress) { SciErr sciErr; int i = 0; int iRet = 0; int iItem = 0; //get list item number, failed if variable is not a kind of list sciErr = getListItemNumber(pvApiCtx, _piAddress, &iItem); if(sciErr.iErr) { printError(&sciErr, 0); sciprint("This variable is not a list"); return 0; } sciprint("List (%d items) -> address : 0x%08X) : \n", iItem, _piAddress); for(i = 0 ; i < iItem ; i++) { int iType = 0; int* piAddrChild = NULL; sciErr = getListItemAddress(pvApiCtx, _piAddress, i + 1, &piAddrChild); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } sciErr = getVarType(pvApiCtx, piAddrChild, &iType); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } if(iType == sci_list || iType == sci_tlist || iType == sci_mlist) { insert_indent(); sciprint("Child %d -> ", i + 1); iLocalTab++; iRet = get_list_info(piAddrChild); iLocalTab--; if(iRet) { return 1; } } else { insert_indent(); sciprint("Child %d -> address : 0x%08X\n", i + 1, piAddrChild); } } return 0; } void insert_indent(void) { int i = 0; for(i = 0 ; i < iLocalTab ; i++) { sciprint("\t"); } }
Scilab テストスクリプト
Report an issue | ||
<< 子要素を取得 (Scilab ゲートウェイ) | List manipulation | 整数の読み込み (Scilab ゲートウェイ) >> |