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