sample.c
 1  #include    <stdio.h>
 2  
 3  #include    "stringid.h"
 4  
 5  
 6  static  void    Test( const char *path )
 7  {
 8      int     ret, id;
 9      SISrc   src;
10      SIStat  st;
11      hSISet  set;
12      hSIDic  dic;
13      const char  *s;
14  
15      ret = SISet_Open( &set );
16      fprintf( stderr, "SISet_Open(): %s\n", SIDic_Error( ret ) );
17  
18      ret = SISet_Load( set, path, "\t\r\n" );
19      fprintf( stderr, "SISet_Load( \"%s\" ): %s\n", path, SIDic_Error( ret ) );
20  
21      ret = SIDic_Build( &dic, set );
22      fprintf( stderr, "SIDic_Build(): %s\n", SIDic_Error( ret ) );
23  
24      ret = SISet_Close( set );
25      fprintf( stderr, "SISet_Close(): %s\n", SIDic_Error( ret ) );
26  
27      ret = SIDic_Status( dic, &st );
28      fprintf( stderr, "SIDic_Status(): %s\n", SIDic_Error( ret ) );
29  
30      fprintf( stderr, "BC: %d\n", st.nbc );
31      fprintf( stderr, "TAIL: %d\n", st.ntail );
32      fprintf( stderr, "SIZE: %d\n", st.size );
33      fprintf( stderr, "KEY: %d\n", st.nkey );
34      fprintf( stderr, "MAX: %d\n", st.maxlen );
35  
36      ret = SIDic_Save( dic, "StrId.dic" );
37      fprintf( stderr, "SIDic_Save( \"%s\" ): %s\n",
38               "StrId.dic", SIDic_Error( ret ) );
39  
40      ret = SIDic_Close( dic );
41      fprintf( stderr, "SIDic_Close(): %s\n", SIDic_Error( ret ) );
42  
43      ret = SIDic_Open( &dic, "StrId.dic" );
44      fprintf( stderr, "SIDic_Open( \"%s\" ): %s\n",
45               "StrId.dic", SIDic_Error( ret ) );
46  
47      s = SIDic_StrToID( dic, "test", &id );
48      fprintf( stderr, "SIDic_StrToID( \"%s\" ): %s: %d\n",
49               "test", ( s != NULL ) ? s : "(null)", id );
50  
51      s = SIDic_IDToStr( dic, id );
52      fprintf( stderr, "SIDic_IDToStr( %d ): %s\n",
53               id, ( s != NULL ) ? s : "(null)" );
54  
55      ret = SISrc_Start( &src, "motor" );
56      fprintf( stderr, "SISrc_Start( \"%s\" ): %s\n",
57               "motor", SIDic_Error( ret ) );
58  
59      while ( ( s = SIDic_Prefix( dic, &src ) ) != NULL )
60          fprintf( stderr, "SIDic_Prefix( \"%s\" ): %s[%d]: %d\n",
61                   src.input, s, src.len, src.id );
62  
63      ret = SISrc_Start( &src, "motor" );
64      fprintf( stderr, "SISrc_Start( \"%s\" ): %s\n",
65               "motor", SIDic_Error( ret ) );
66  
67      while ( ( s = SIDic_Infix( dic, &src ) ) != NULL )
68          fprintf( stderr, "SIDic_Infix( \"%s\" ): %s[%d]: %d\n",
69                   src.input, s, src.len, src.id );
70  
71      ret = SIDic_Close( dic );
72      fprintf( stderr, "SIDic_Close(): %s\n", SIDic_Error( ret ) );
73  }
74  
75  int     main( int argc, char *argv[] )
76  {
77      int     i;
78  
79      for ( i = 1; i < argc; i++ )
80          Test( argv[i] );
81  
82      return  0;
83  }