43ce5b1e1f24e0c6b9a74c67df3a18b5fd8ee60b
[scilab.git] / scilab / modules / api_scilab / help / ja_JP / handle / D_handleExample.xml
1 <?xml version="1.0" encoding="utf-8"?>
2
3 <!--
4  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
5  * Copyright (C) 2009  - DIGITEO - Antoine ELIAS
6  * 
7  * This file must be used under the terms of the CeCILL.
8  * This source file is licensed as described in the file COPYING, which
9  * you should have received as part of this distribution.  The terms
10  * are also available at    
11  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
12  *
13  -->
14
15 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="handleExample" xml:lang="ja">
16     
17     <refnamediv>
18         
19         <refname>ハンドルの例</refname>
20         
21         <refpurpose>
22             
23             ハンドルの使用例.
24             
25         </refpurpose>
26         
27     </refnamediv>
28     
29     <refsection>
30         
31         <title>説明</title>
32         
33         <para>この例はハンドル変数を取得し,Scilabに返す方法を示します.</para>
34         
35     </refsection>
36     
37     <refsection>
38         
39         <!--File_gateway: SCI/modules/api_scilab/tests/unit_tests/handleExample.c-->
40         
41         <!--File_scilab: SCI/modules/api_scilab/tests/unit_tests/handleExample.tst-->
42         
43         <!--Lib_name: handleExample-->
44         
45         <!--Func_list: handleExample-->
46         
47         <title>ゲートウェイのソース</title>
48         
49         <programlisting role="code_gateway">
50             
51             <![CDATA[ 
52 #include "api_scilab.h"
53
54 int handleExample(char *fname,unsigned long fname_len)
55 {
56     SciErr sciErr;
57     int* piAddr = NULL;
58     int iType   = 0;
59     int iRet    = 0;
60
61     CheckInputArgument(pvApiCtx, 1, 1);
62     CheckOutputArgument(pvApiCtx, 0, 1);
63
64     sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
65     if(sciErr.iErr)
66     {
67         printError(&sciErr, 0);
68         return 0;
69     }
70     if(isHandleType(pvApiCtx, piAddr))
71     {
72         if(isScalar(pvApiCtx, piAddr))
73         {
74             long long llHandle = 0;
75             iRet = getScalarHandle(pvApiCtx, piAddr, &llHandle);
76             if(iRet)
77             {
78                 return 0;
79             }
80             iRet = createScalarHandle(pvApiCtx, nbInputArgument(pvApiCtx) + 1, llHandle);
81             if(iRet)
82             {
83                 return 0;
84             }
85         }
86         else
87         {
88             int iRows   = 0;
89             int iCols   = 0;
90             long long *pllHandle = NULL;
91
92             sciErr = getMatrixOfHandle(pvApiCtx, piAddr, &iRows, &iCols, &pllHandle);
93             if(sciErr.iErr)
94             {
95                 printError(&sciErr, 0);
96                 return 0;
97             }
98
99             sciErr = createMatrixOfHandle(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iRows, iCols, pllHandle);
100             if(sciErr.iErr)
101             {
102                 printError(&sciErr, 0);
103                 return 0;
104             }
105         }
106         AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
107     }
108     else
109     {
110         AssignOutputVariable(pvApiCtx, 1) = 0;
111     }
112     return 0;
113 }
114  ]]>
115             
116         </programlisting>
117         
118     </refsection>
119     
120     <refsection>
121         
122         <title>Scilabテストスクリプト</title>
123         
124         <programlisting role="code_scilab"><![CDATA[ 
125 a = %t;
126 b = %f;
127 c = [a,b;b,a;a,b;b,a];
128 d = c';
129
130 handleExample(a) == a
131 handleExample(b) == b
132 handleExample(c) == c
133 handleExample(d) == d
134  ]]></programlisting>
135         
136     </refsection>
137     
138     <title>履歴</title>
139     
140     <revhistory>
141         
142         <revision>
143             
144             <revnumber>5.5.0</revnumber>
145             
146             <revremark>この関数はScilab 5.5.0で追加されました</revremark>
147             
148         </revision>
149         
150     </revhistory>
151     
152 </refentry>
153