add new help pages and examples for CAPI
[scilab.git] / scilab / modules / core / examples / capi / create_list / create_list.c
1 #include <stack-c.h>
2 #include <string.h>
3
4 int sci_create_list(char * fname)
5 {
6   int m_list_out, n_list_out;
7   int m_var1,     n_var1,     l_var1,  l_list_var1;
8   int m_var2,     n_var2,     l_var2,  l_list_var2;
9   int m_mlist,    n_mlist,    l_mlist;
10  
11   // The labels of our mlist 
12   static const char * ListLabels [] = {"mylist","var1","var2"};
13
14   // First, we create the variables using a classical way
15   // The size of the Scilab variables
16   m_var1  = 1; n_var1  = strlen("a string")+1; // a null terminated string
17   m_var2  = 2; n_var2  = 2; // A 2x2 double matrix
18   m_mlist = 3; n_mlist = 1; // A mlist with 3 elements
19   
20   // Creation of the Scilab variables
21   // A('var1')
22   CreateVar(1, "c", &m_var1,  &n_var1,  &l_var1);
23   // A('var2')
24   CreateVar(2, "d", &m_var2,  &n_var2,  &l_var2);
25   // A
26   CreateVar(3, "m", &m_mlist, &n_mlist, &l_mlist);
27   
28   // We store values in the create variables
29   // The matrix will be stored in A('var2')
30   *stk(l_var2+0) = 1;              
31   *stk(l_var2+1) = 2;              
32   *stk(l_var2+2) = 3;              
33   *stk(l_var2+3) = 4;              
34   
35   // The string will be stored in A('var1')
36   strncpy(cstk(l_var1),"a string\0",n_var1);
37   
38   m_list_out = 3; n_list_out = 1;
39   
40   // now, affect the variable  to the mlist
41   // The labels (it corresponds to A = mlist(['mylist','var1','var2'], ...
42   CreateListVarFromPtr(3, 1, "S", &m_list_out, &n_list_out, ListLabels);
43   // The value stored in A('var1') (it corresponds to A = ...,'a string', ...
44   CreateListVarFrom(3, 2, "c", &m_var1, &n_var1, &l_list_var1, &l_var1);
45   // The value stored in A('var2') (it corresponds to A = ...,[1 2,3 4]);
46   CreateListVarFrom(3, 3, "d", &m_var2, &n_var2, &l_list_var2, &l_var2);
47   
48   // We return only the mlist which has been created at position 3
49   LhsVar(1) = 3;
50   
51   return 0;
52 }