comparison xdwaddatn2.cpp @ 9:cc5262d43399

small changes.
author pyon@macmini
date Thu, 05 Apr 2018 21:06:13 +0900
parents 61ce4754737e
children e421bcd3bce4
comparison
equal deleted inserted replaced
8:61ce4754737e 9:cc5262d43399
61 break; 61 break;
62 } 62 }
63 fprintf( stderr, "[ Error code : %d ]\n", code ); 63 fprintf( stderr, "[ Error code : %d ]\n", code );
64 } 64 }
65 65
66 void print_help() {
67 char prog[12] = "xdwaddatn2";
68 fprintf( stderr, "Usage:\n" );
69 fprintf( stderr, " %s -m mtxt x y txt sz tr infile\n", prog );
70 fprintf( stderr, " %s -p page x y txt sz tr infile\n", prog );
71 fprintf( stderr, " %s -m -i infile\n", prog );
72 fprintf( stderr, " %s -p -i infile\n", prog );
73 fprintf( stderr, " %s -v -p -i infile\n", prog );
74 fprintf( stderr, " %s -v -m -i infile\n", prog );
75 }
76
66 void print_now( const char *msg ) { 77 void print_now( const char *msg ) {
67 time_t now = time( NULL ); 78 time_t now = time( NULL );
68 struct tm *ts = localtime( &now ); 79 struct tm *ts = localtime( &now );
69 80
70 char buf[80]; 81 char buf[80];
97 char prog[128]; 108 char prog[128];
98 strcpy( prog, argv[0] ); 109 strcpy( prog, argv[0] );
99 110
100 bool pnow = false; 111 bool pnow = false;
101 bool mmode = false; 112 bool mmode = false;
113 bool pmode = false;
102 bool csv = false; 114 bool csv = false;
103 char c; 115 char c;
104 while ( --argc > 0 && ( *++argv )[0] == '-' ) { 116 while ( --argc > 0 && ( *++argv )[0] == '-' ) {
105 while ( c = *++argv[0] ) { 117 while ( c = *++argv[0] ) {
106 switch ( c ) { 118 switch ( c ) {
110 break; 122 break;
111 case 'm': /* matched page: now writing... */ 123 case 'm': /* matched page: now writing... */
112 mmode = true; 124 mmode = true;
113 break; 125 break;
114 case 'p': /* page number: now writing... */ 126 case 'p': /* page number: now writing... */
127 pmode = true;
115 break; 128 break;
116 case 'i': /* csv file: now writing... */ 129 case 'i': /* csv file: now writing... */
117 csv = true; 130 csv = true;
118 break; 131 break;
119 default: 132 default:
120 fprintf( stderr, "error: illegal option '%c'.\n", c ); 133 fprintf( stderr, "error: illegal option '%c'.\n", c );
134 print_help();
121 exit( 1 ); 135 exit( 1 );
122 } 136 }
123 } 137 }
124 } 138 }
125 139
126 if ( argc < 1 ) { 140 if ( argc < 1 || ( mmode && pmode ) || ( !mmode && !pmode )) {
127 fprintf( stderr, "%s -m mtxt x y txt sz tr infile\n", prog ); 141 print_help();
128 fprintf( stderr, "%s -p page x y txt sz tr infile\n", prog );
129 fprintf( stderr, "%s -m -i infile\n", prog );
130 fprintf( stderr, "%s -p -i infile\n", prog );
131 fprintf( stderr, "%s -v -p -i infile\n", prog );
132 fprintf( stderr, "%s -v -m -i infile\n", prog );
133 exit( 1 ); 142 exit( 1 );
134 } 143 }
135 144
136 /* リストの取り込み */ 145 /* リストの取り込み */
137 char *al = (char*)malloc( MAXLINE * sizeof( char ) * MAXCOL ); 146 char *al = (char*)malloc( MAXLINE * sizeof( char ) * MAXCOL );
188 if ( !csv ) { 197 if ( !csv ) {
189 if ( mmode ) { 198 if ( mmode ) {
190 for ( int i = 0; i < alN; i++ ) { 199 for ( int i = 0; i < alN; i++ ) {
191 } 200 }
192 } 201 }
193 else { 202 else { // pmode のはず
194 } 203 }
195 } 204 }
196 else { 205 else {
197 if ( pnow ) print_now( "csv mode." ); 206 if ( pnow ) print_now( "csv mode." );
198 XDW_DOCUMENT_INFO info = { sizeof( XDW_DOCUMENT_INFO ), 0, 0, 0 }; // 総ページ数を得る 207 XDW_DOCUMENT_INFO info = { sizeof( XDW_DOCUMENT_INFO ), 0, 0, 0 }; // 総ページ数を得る
222 } 231 }
223 } 232 }
224 } 233 }
225 XDW_CloseFoundHandle( pFoundHandle ); 234 XDW_CloseFoundHandle( pFoundHandle );
226 } 235 }
227 else { 236 else { // pmode のはず
237 int p;
238 for ( int i = 0; i < alN; i++ ) {
239 strncpy( buf, &al[ i * MAXCOL ], MAXCOL );
240 m = strtok( buf, "," );
241 p = atoi( m );
242 if ( p > 0 && p <= last_page ) {
243 x = atoi( strtok( NULL, "," ) );
244 y = atoi( strtok( NULL, "," ) );
245 s = strtok( NULL, "," );
246 sz = atoi( strtok( NULL, "," ) );
247 tr = atoi( strtok( NULL, "," ) );
248 api_result = add_annotation( h, p, x, y, s, &sz, tr );
249 if ( api_result < 0 ) {
250 print_error( api_result );
251 break;
252 }
253 }
254 }
228 } 255 }
229 } 256 }
230 257
231 api_result = XDW_SaveDocument( h, NULL ); // 変更をファイルに反映する 258 api_result = XDW_SaveDocument( h, NULL ); // 変更をファイルに反映する
232 XDW_CloseDocumentHandle( h, NULL ); // 文書ハンドルを閉じる 259 XDW_CloseDocumentHandle( h, NULL ); // 文書ハンドルを閉じる