Mercurial > mercurial > hgweb_xdwtools.cgi
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 ); // 文書ハンドルを閉じる |
