annotate src/kaigo/Nk/nk.go @ 62:a2c9a535cdd3

add watcher.go
author pyon@macmini
date Wed, 14 Oct 2020 21:30:04 +0900
parents c58172a59534
children 17e042fc8a33
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
41
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
1 /*
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
2 nk.go: Nintei Kekka
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
3
42
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
4 Last Change: 2020-03-10 火 16:38:20.
41
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
5 */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
6
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
7 package main
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
8
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
9 /*
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
10 #cgo LDFLAGS: -L. -lxdwapi -static
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
11 #include <stdio.h>
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
12 #include <stdlib.h>
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
13 #include <string.h>
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
14 #include <io.h>
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
15 #include <windows.h>
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
16 #include <xdw_api.h>
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
17 #include <xdwapian.h>
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
18
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
19 #define MAXCOL 1024
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
20 #define MAXLINE 9999
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
21 #define BLOCKSZ 128
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
22
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
23 int xdwpages(const char* file) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
24 char in_path[_MAX_PATH];
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
25 _fullpath(in_path, file, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
26
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
27 XDW_DOCUMENT_HANDLE h = NULL; // 文書ハンドルを開く
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
28 XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE};
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
29 if (XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode)) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
30 printf("Error: cannot open %s\n", file);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
31 return -1;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
32 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
33
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
34 XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0}; // 総ページ数を得る
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
35 XDW_GetDocumentInformation(h, &info);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
36 int nPage = info.nPages;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
37
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
38 XDW_CloseDocumentHandle(h, NULL); // 文書ハンドルを閉じる
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
39
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
40 return nPage;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
41 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
42
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
43 char* xdw2txt(const char* file) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
44 char in_path[_MAX_PATH];
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
45 _fullpath(in_path, file, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
46
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
47 XDW_DOCUMENT_HANDLE h = NULL; // 文書ハンドルを開く
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
48 XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE};
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
49 if (XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode)) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
50 printf("Error: cannot open %s\n", file);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
51 return NULL;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
52 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
53
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
54 XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0}; // 総ページ数を得る
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
55 XDW_GetDocumentInformation(h, &info);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
56 int nPage = info.nPages;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
57
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
58 // メイン処理
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
59 char *lpszvalue, *all_lpszvalue;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
60 long datasize[9999];
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
61 for (int i=1; i<=nPage; i++) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
62 datasize[i] = XDW_GetPageTextToMemory(h, i, NULL, 0, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
63 datasize[0] += datasize[i];
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
64 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
65 datasize[0] += nPage - 1; // for "\n"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
66 all_lpszvalue = (char*)malloc(sizeof(char)*datasize[0]);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
67 all_lpszvalue[0] = '\0';
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
68 for (int i=1; i<=nPage; i++) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
69 if (i<nPage) datasize[i]++; // for "\n"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
70 lpszvalue = (char*)malloc(sizeof(char)*(datasize[i]));
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
71 XDW_GetPageTextToMemory(h, i, lpszvalue, datasize[i], NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
72 strcat(all_lpszvalue, lpszvalue);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
73 if (i<nPage) strcat(all_lpszvalue, "\n");
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
74 free(lpszvalue);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
75 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
76
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
77 XDW_CloseDocumentHandle(h, NULL); // 文書ハンドルを閉じる
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
78 return all_lpszvalue;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
79 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
80
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
81 int xdwpush(const char* file1, const char* file2) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
82 char in_path[_MAX_PATH], add_path[_MAX_PATH];
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
83 _fullpath(in_path, file1, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
84 _fullpath(add_path, file2, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
85
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
86 XDW_DOCUMENT_HANDLE h = NULL;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
87 XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_UPDATE, XDW_AUTH_NODIALOGUE};
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
88
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
89 int api_result = XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
90 if (api_result < 0) return api_result;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
91
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
92 XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0};
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
93 XDW_GetDocumentInformation(h, &info);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
94 int last_page = info.nPages;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
95
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
96 api_result = XDW_InsertDocument(h, last_page+1, add_path, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
97 if (api_result < 0) api_result;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
98
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
99 XDW_SaveDocument(h, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
100 XDW_CloseDocumentHandle(h, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
101
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
102 return (api_result >= 0);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
103 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
104
42
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
105 int xdwhbaddatn(const char* file, char* atnlist) {
41
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
106 char in_path[_MAX_PATH];
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
107 _fullpath(in_path, file, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
108
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
109 XDW_DOCUMENT_HANDLE h = NULL;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
110 XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_UPDATE, XDW_AUTH_NODIALOGUE};
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
111
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
112 int api_result = XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
113 if (api_result < 0) return api_result;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
114
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
115 XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0};
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
116 XDW_GetDocumentInformation(h, &info);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
117
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
118 char *str, *token;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
119 char *saveptr1, *saveptr2;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
120 int x, y, sz, tr;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
121 char *s;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
122
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
123 for (str = atnlist; ; str = NULL) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
124 token = strtok_r(str, ":", &saveptr1);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
125 if (token == NULL) break;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
126 //printf("%s\n", token);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
127
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
128 // atn.X, atn.Y, atn.Sz, tr, atn.Txt
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
129 x = atoi(strtok_r(token, ",", &saveptr2));
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
130 y = atoi(strtok_r(NULL , ",", &saveptr2));
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
131 sz = atoi(strtok_r(NULL, ",", &saveptr2));
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
132 tr = atoi(strtok_r(NULL, ",", &saveptr2));
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
133 s = strtok_r(NULL, ",", &saveptr2);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
134 //printf("x=%d y=%d txt=%s sz=%d tr=%d\n", x, y, s, sz, tr);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
135
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
136 for (int i = 0; i < info.nPages; i++ ) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
137 XDW_ANNOTATION_HANDLE annoation;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
138 int api_result = XDW_AddAnnotation(h, XDW_AID_TEXT, i + 1, x, y, NULL, &annoation, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
139
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
140 if (api_result < 0) return api_result;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
141
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
142 api_result = XDW_SetAnnotationAttribute(h, annoation, XDW_ATN_Text, XDW_ATYPE_STRING, s, 0, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
143 api_result = XDW_SetAnnotationAttribute(h, annoation, XDW_ATN_FontSize, XDW_ATYPE_INT, (char*)&sz, 0, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
144
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
145 if (tr) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
146 int color = XDW_COLOR_NONE;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
147 api_result = XDW_SetAnnotationAttribute(h, annoation, XDW_ATN_BackColor, XDW_ATYPE_INT, (char*)&color, 0, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
148 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
149 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
150 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
151
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
152 XDW_SaveDocument(h, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
153 XDW_CloseDocumentHandle(h, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
154
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
155 return 0;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
156 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
157
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
158 int xdwsort(const char* file, const char* sorted, const char* order, const char* workdir, const char* prefix) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
159 char buf[MAXCOL];
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
160
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
161 // メモリ確保
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
162 char *sl = (char*)malloc(MAXLINE * sizeof(char) * MAXCOL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
163 if (sl == NULL) return -1;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
164
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
165 int slN = 0;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
166 char *p;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
167 p = strtok(order, ":");
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
168 strncpy(&sl[slN * MAXCOL], p, MAXCOL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
169 slN++;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
170
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
171 while (p = strtok(NULL, ":")) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
172 strncpy(&sl[slN * MAXCOL], p, MAXCOL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
173 slN++;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
174 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
175
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
176 //for (int j = 0; j < slN; j++) printf("%d : %s\n", j, &sl[j * MAXCOL]);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
177 //return 0;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
178
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
179 // 重み付け = 並び順
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
180 char in_path[_MAX_PATH];
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
181 _fullpath(in_path, file, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
182
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
183 XDW_DOCUMENT_HANDLE h = NULL;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
184 XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE};
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
185
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
186 int api_result = XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
187 if (api_result < 0) return api_result;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
188
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
189 XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0};
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
190 XDW_GetDocumentInformation(h, &info);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
191 int last_page = info.nPages;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
192
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
193 int *table = (int*)malloc(sizeof(int) * last_page);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
194 for (int p = 0; p < last_page; p++) *(table + p) = 9999;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
195
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
196 int index = 0;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
197 XDW_FOUND_HANDLE pFoundHandle = NULL;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
198 for (int i = 0; i < slN; i++) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
199 for (int p = 0; p < last_page; p++) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
200 if (*(table + p) != 9999) continue;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
201
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
202 api_result = XDW_FindTextInPage(h, p + 1, &sl[i * MAXCOL], NULL, &pFoundHandle, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
203 if (api_result < 0) return api_result;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
204
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
205 if (pFoundHandle != NULL) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
206 *(table + p) = ++index;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
207 pFoundHandle = NULL;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
208 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
209 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
210 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
211 free(sl);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
212
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
213 for (int p = 0; p < last_page; p++) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
214 if (*(table + p) == 9999) *(table + p) = ++index;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
215
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
216 sprintf(buf, "%s/%s_%04d.xdw", workdir, prefix, *(table + p));
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
217 _fullpath(in_path, buf, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
218
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
219 api_result = XDW_GetPage(h, p + 1, in_path, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
220 if (api_result < 0) return api_result;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
221 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
222 free(table);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
223 XDW_CloseDocumentHandle(h, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
224
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
225 // ブロック処理
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
226 char *blk_path = (char*)malloc(BLOCKSZ * sizeof(char) * _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
227 const char **blk_path_addr = (const char**)malloc((last_page / BLOCKSZ + 1) * sizeof(char*) * _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
228
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
229 int bn = 0;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
230 for (int p = 0, m = 0; p < last_page; p++) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
231 m = p % BLOCKSZ;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
232
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
233 if (m == 0 && p > 0) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
234 sprintf(buf, "%s/%s_b%04d.xdw", workdir, prefix, ++bn);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
235 _fullpath(in_path, buf, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
236
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
237 api_result = XDW_MergeXdwFiles(blk_path_addr, BLOCKSZ, in_path, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
238 if (api_result < 0) return api_result;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
239 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
240
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
241 sprintf(buf, "%s/%s_%04d.xdw", workdir, prefix, p + 1);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
242 _fullpath(in_path, buf, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
243
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
244 strncpy(&blk_path[m * _MAX_PATH], in_path, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
245
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
246 blk_path_addr[m] = &blk_path[m * _MAX_PATH];
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
247 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
248
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
249 sprintf(buf, "%s/%s_b%04d.xdw", workdir, prefix, ++bn);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
250 _fullpath(in_path, buf, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
251
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
252 int mod = last_page % BLOCKSZ;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
253 if (mod == 0) mod = BLOCKSZ;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
254
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
255 api_result = XDW_MergeXdwFiles(blk_path_addr, mod, in_path, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
256 if (api_result < 0) return api_result;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
257
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
258 for (int b = 0; b < bn; b++) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
259 sprintf(buf, "%s/%s_b%04d.xdw", workdir, prefix, b + 1);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
260
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
261 _fullpath(in_path, buf, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
262 strncpy(&blk_path[b * _MAX_PATH], in_path, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
263
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
264 blk_path_addr[b] = &blk_path[b * _MAX_PATH];
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
265 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
266
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
267 _fullpath(in_path, sorted, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
268
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
269 api_result = XDW_MergeXdwFiles(blk_path_addr, bn, in_path, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
270 if (api_result < 0) return api_result;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
271
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
272 free(blk_path);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
273 free(blk_path_addr);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
274
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
275 return 0;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
276 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
277
42
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
278 int xdwerase(const char* in_file, const char* ktxt, const char* htxt) {
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
279 int x = 20000;
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
280 int y = 3685;
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
281 int sz = 480;
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
282
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
283 char in_path[_MAX_PATH];
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
284 _fullpath(in_path, in_file, _MAX_PATH);
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
285
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
286 XDW_DOCUMENT_HANDLE h = NULL;
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
287 XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_UPDATE, XDW_AUTH_NODIALOGUE};
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
288
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
289 int api_result = XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode);
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
290 if (api_result < 0) return api_result;
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
291
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
292 XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0};
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
293 XDW_GetDocumentInformation(h, &info);
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
294
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
295 XDW_FOUND_HANDLE pFoundHandle = NULL;
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
296 for (int i = 0; i < info.nPages; i++) {
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
297 api_result = XDW_FindTextInPage(h, i + 1, htxt, NULL, &pFoundHandle, NULL);
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
298 if (pFoundHandle == NULL) continue;
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
299
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
300 api_result = XDW_FindTextInPage(h, i + 1, ktxt, NULL, &pFoundHandle, NULL);
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
301 if (pFoundHandle == NULL) continue;
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
302
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
303 XDW_ANNOTATION_HANDLE annoation;
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
304 int api_result = XDW_AddAnnotation(h, XDW_AID_TEXT, i + 1, x, y, NULL, &annoation, NULL);
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
305 if (api_result < 0) return api_result;
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
306
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
307 api_result = XDW_SetAnnotationAttribute(h, annoation, XDW_ATN_Text, XDW_ATYPE_STRING, " ", 0, NULL);
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
308 api_result = XDW_SetAnnotationAttribute(h, annoation, XDW_ATN_FontSize, XDW_ATYPE_INT, (char*)&sz, 0, NULL);
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
309 }
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
310
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
311 XDW_SaveDocument(h, NULL);
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
312 XDW_CloseDocumentHandle(h, NULL);
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
313
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
314 return 0;
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
315 }
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
316
41
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
317 int xdw2pdf(const char* xdwfile, const char* pdffile) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
318 char in_path[_MAX_PATH], out_path[_MAX_PATH];
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
319 _fullpath(in_path, xdwfile, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
320 _fullpath(out_path, pdffile, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
321
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
322 remove(out_path);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
323 int api_result = 0;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
324
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
325 XDW_DOCUMENT_HANDLE h = NULL;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
326 XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE};
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
327
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
328 api_result = XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
329 if (api_result < 0) return api_result;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
330
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
331 XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0};
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
332 XDW_GetDocumentInformation(h, &info);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
333
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
334 XDW_IMAGE_OPTION_PDF pdf = {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
335 sizeof(XDW_IMAGE_OPTION_PDF),
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
336 XDW_COMPRESS_MRC_NORMAL,
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
337 XDW_CONVERT_MRC_OS,
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
338 info.nPages
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
339 };
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
340
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
341 XDW_IMAGE_OPTION_EX ex = {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
342 sizeof(XDW_IMAGE_OPTION_EX),
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
343 600, // dpi
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
344 XDW_IMAGE_MONO_HIGHQUALITY,
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
345 XDW_IMAGE_PDF,
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
346 &pdf
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
347 };
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
348
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
349 api_result = XDW_ConvertPageToImageFile(h, 1, out_path, (XDW_IMAGE_OPTION*)&ex);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
350
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
351 XDW_SaveDocument(h, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
352 XDW_CloseDocumentHandle(h, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
353
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
354 return 0;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
355 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
356
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
357 int xdwopt(const char* in, const char* out) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
358 char in_path[_MAX_PATH], out_path[_MAX_PATH];
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
359 _fullpath(in_path, in, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
360 _fullpath(out_path, out, _MAX_PATH);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
361
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
362 int api_result = XDW_OptimizeDocument(in_path, out_path, NULL);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
363 return (api_result >= 0);
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
364 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
365 */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
366 import "C"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
367
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
368 import (
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
369 "bufio"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
370 "encoding/json"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
371 "fmt"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
372 "flag"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
373 "io/ioutil"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
374 "log"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
375 "os"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
376 "os/exec"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
377 "path/filepath"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
378 "regexp"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
379 "sort"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
380 "strings"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
381 "time"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
382
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
383 "golang.org/x/text/encoding/japanese"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
384 "golang.org/x/text/transform"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
385 )
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
386
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
387 var (
42
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
388 ver = "0.2"
41
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
389
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
390 flg_hb int
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
391 flg_time bool
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
392 flg_log bool
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
393 flg_debug bool
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
394 flg_clean bool
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
395
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
396 confjson = "nk.json"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
397 logfile = "nk.log"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
398 hhscsv = "hhsdb.csv"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
399 tmpdir string
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
400 tmpprefix = "nktemp_"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
401 inputdir = "input"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
402 outputdir = "output"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
403 outcsv = "out.csv"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
404
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
405 start time.Time
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
406
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
407 hb string // 発番
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
408 fw, hs, kt = "", "", "kttemp.xdw" // 負担割合証, 被保険者証, 結果通知
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
409
42
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
410 step, totalstep = 1, 14
41
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
411 )
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
412
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
413 type Annotation struct {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
414 X, Y int
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
415 Sz int
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
416 Tr bool
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
417 Txt string
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
418 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
419
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
420 type Config struct {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
421 Atns []Annotation
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
422 Kyotaku []string
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
423 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
424
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
425 func (c *Config) ProcessTemplate() {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
426 today := time.Now().Format("令和 r 年 1 月 2 日")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
427 y := time.Now().Year() - 2018
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
428 if y == 1 {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
429 today = strings.ReplaceAll(today, "r", "元")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
430 } else {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
431 today = strings.ReplaceAll(today, "r", fmt.Sprintf("%d", y))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
432 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
433
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
434 var atns []Annotation
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
435 for _, atn := range c.Atns {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
436 s := atn.Txt
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
437 if atn.Txt == "date" {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
438 s = today
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
439 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
440 if strings.ContainsAny(atn.Txt, "hb") {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
441 s = strings.ReplaceAll(atn.Txt, "hb", hb)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
442 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
443 atns = append(atns, Annotation{atn.X, atn.Y, atn.Sz, atn.Tr, s})
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
444 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
445 c.Atns = atns
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
446 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
447
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
448 func (c *Config) KyotakuList() []string {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
449 return c.Kyotaku
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
450 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
451
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
452 func (c *Config) AnnotationList() (al []string) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
453 for _, atn := range c.Atns {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
454 tr := 0
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
455 if atn.Tr {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
456 tr = 1
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
457 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
458 s := fmt.Sprintf("%d,%d,%d,%d,%s", atn.X, atn.Y, atn.Sz, tr, atn.Txt)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
459 al = append(al, s)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
460 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
461 return
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
462 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
463
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
464 func init() {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
465 /* INITIALIZE FLAGS */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
466 flag.IntVar(&flg_hb, "b", 0, "set hatsuban")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
467 flag.BoolVar(&flg_time, "t", false, "print time")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
468 flag.BoolVar(&flg_log, "l", false, "save log")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
469 flag.BoolVar(&flg_debug, "d", false, "print data for debug")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
470 flag.BoolVar(&flg_clean, "c", false, "clean temporary directory & exit")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
471
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
472 /* CREAN OUTPUT-FILE & TEMP-FILE */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
473 if err := os.RemoveAll(outputdir); err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
474 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
475 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
476 os.Remove(logfile)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
477
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
478 /* PREPARATE OUTPUT-DIR & TEMP-DIR */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
479 if err := os.Mkdir(outputdir, 0755); err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
480 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
481 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
482
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
483 var err error
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
484 tmpdir, err = ioutil.TempDir(".", tmpprefix)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
485 if err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
486 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
487 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
488 logfile = filepath.Join(tmpdir, logfile)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
489 kt = filepath.Join(tmpdir, kt)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
490 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
491
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
492 func main() {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
493 flag.Parse()
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
494
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
495 /* CLEAN TEMPORARY DIRECTORY */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
496 if flg_clean {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
497 files, err := ioutil.ReadDir(".")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
498 if err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
499 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
500 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
501 for _, file := range files {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
502 if strings.HasPrefix(file.Name(), tmpprefix) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
503 if err := os.RemoveAll(file.Name()); err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
504 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
505 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
506 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
507 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
508 os.Exit(0)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
509 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
510
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
511 /* PRINT HEADER */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
512 fmt.Println("=======================================")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
513 fmt.Println(" 被保険者証と結果通知と負担割合証を... ")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
514 fmt.Printf(" - nk [ver %s] -\n", ver)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
515 fmt.Println("=======================================\n")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
516
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
517 /* USER INPUT */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
518 hb = fmt.Sprintf("%d", flg_hb)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
519 if flg_hb == 0 {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
520 fmt.Print("発番 > ")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
521 fmt.Scan(&hb)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
522 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
523
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
524 start = time.Now()
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
525
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
526 /* READ CONFIG FROM JSON */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
527 print_step("設定読込み")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
528 conf, err := read_conf(confjson)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
529 if err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
530 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
531 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
532 conf.ProcessTemplate()
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
533 step_start := print_time(start)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
534
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
535 /* CHECK INPUT-FILE */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
536 print_step("入力ファイルのチェック")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
537 files, err := ioutil.ReadDir(inputdir)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
538 if err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
539 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
540 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
541
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
542 var kts []string
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
543 for _, file := range files {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
544 if strings.HasSuffix(file.Name(), ".xdw") {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
545 print_debug([]string{file.Name()})
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
546 switch file.Name()[0:8] {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
547 case "KBPV016G":
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
548 fw = filepath.Join(inputdir, file.Name())
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
549 case "KBPG316G":
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
550 hs = filepath.Join(inputdir, file.Name())
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
551 case "KBPG206G", "KBPG706G":
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
552 f := filepath.Join(inputdir, file.Name())
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
553 kts = append(kts, f)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
554 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
555 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
556 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
557
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
558 fmt.Println()
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
559 fmt.Printf(" 負担割合証ファイル = %s\n", fw)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
560 fmt.Printf(" 被保険者証ファイル = %s\n", hs)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
561 fmt.Print(" 結果通知ファイル =")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
562 for _, f := range kts {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
563 fmt.Printf(" %s", f)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
564 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
565 fmt.Println()
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
566 if fw == "" || hs == "" || len(kts) == 0 {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
567 fmt.Fprintf(os.Stderr, "Input file is wrong.\n")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
568 os.Exit(1)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
569 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
570
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
571 bytes, err := ioutil.ReadFile(hhscsv)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
572 if err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
573 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
574 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
575 hash_hhs := make(map[string]string) // 被保険者氏名のハッシュ
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
576 r := strings.NewReader(string(bytes))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
577 tr := transform.NewReader(r, japanese.ShiftJIS.NewDecoder())
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
578 buf := bufio.NewScanner(tr)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
579 for buf.Scan() {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
580 records := strings.Split(buf.Text(), ",")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
581 hash_hhs[records[0]] = records[2]
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
582 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
583 fmt.Printf(" 被保険者ファイル = %s\n", hhscsv)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
584
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
585 step_start = print_time(step_start)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
586
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
587 /* CONCATNATE INPUT-FILE */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
588 print_step("結果通知ファイルの連結")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
589 b, err := ioutil.ReadFile(kts[0])
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
590 if err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
591 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
592 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
593 if err = ioutil.WriteFile(kt, b, 0644); err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
594 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
595 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
596 if len(kts) > 1 {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
597 pp := 0
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
598 fmt.Println()
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
599 for _, file := range kts {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
600 p, _ := C.xdwpages(C.CString(file))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
601 fmt.Printf(" %s\t= %d ページ\n", file, int(p))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
602 pp += int(p)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
603 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
604 fmt.Printf(" 合計\t= %d ページ\n", pp)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
605 for _, file := range kts[1:] {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
606 C.xdwpush(C.CString(kt), C.CString(file))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
607 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
608 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
609 step_start = print_time(step_start)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
610
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
611 /* MAKE SORT-TABEL */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
612 print_step("並び順の決定")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
613
42
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
614 re_hhs := regexp.MustCompile(`0[1238]\d{8}`)
41
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
615 re_kaigo := regexp.MustCompile(`要((介護)|(支援)).`)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
616
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
617 hash_fw := make(map[string]int) // 負担割合証発行者のハッシュ
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
618 for _, t := range xdw2txt(fw) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
619 hash_fw[re_hhs.FindString(t)]++
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
620 print_debug([]string{re_hhs.FindString(t)})
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
621 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
622
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
623 kyotaku := conf.KyotakuList()
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
624
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
625 hash_kaigo := make(map[string]string) // 被保険者証発行者の要介護度のハッシュ
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
626 hash_kyotaku := make(map[string]string) // 被保険者証発行者の居宅介護支援事業所のハッシュ
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
627 var sorttable []string
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
628 for _, t := range xdw2txt(hs) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
629 h := re_hhs.FindString(t)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
630 hash_kaigo[h] = re_kaigo.FindString(t)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
631 for _, k := range kyotaku {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
632 if strings.Contains(t, k) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
633 hash_kyotaku[h] = k
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
634 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
635 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
636 key := make_sort_key(hash_fw[h], re_kaigo.FindString(t), h)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
637 s := fmt.Sprintf("%s#%d:%s:%s#%s", key, hash_fw[h], re_kaigo.FindString(t), hash_kyotaku[h], h)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
638 sorttable = append(sorttable, s)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
639 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
640 //sort.Sort(sort.Reverse(sort.StringSlice(sorttable)))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
641 sort.Sort(sort.StringSlice(sorttable))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
642 print_debug(sorttable)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
643 step_start = print_time(step_start)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
644
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
645 /* DO SORT */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
646 order := ""
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
647 for _, s := range sorttable {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
648 t := strings.Split(s, "#")
42
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
649 order += ":" + t[len(t)-1]
41
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
650 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
651 order = strings.Replace(order, ":", "", 1)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
652
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
653 print_step("被保険者証並び替え")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
654 hs_sorted := filepath.Join(tmpdir, "hs.xdw")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
655 C.xdwsort(C.CString(hs), C.CString(hs_sorted), C.CString(order), C.CString(tmpdir), C.CString("hs"))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
656 step_start = print_time(step_start)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
657
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
658 print_step("負担割合証並び替え")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
659 fw_sorted := filepath.Join(tmpdir, "fw.xdw")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
660 C.xdwsort(C.CString(fw), C.CString(fw_sorted), C.CString(order), C.CString(tmpdir), C.CString("fw"))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
661 step_start = print_time(step_start)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
662
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
663 print_step("結果通知並び替え")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
664 kt_sorted := filepath.Join(tmpdir, "kt.xdw")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
665 C.xdwsort(C.CString(kt), C.CString(kt_sorted), C.CString(order), C.CString(tmpdir), C.CString("kt"))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
666 step_start = print_time(step_start)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
667
42
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
668 /* ADD HATSUBAN */
41
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
669 print_step("発番印字")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
670 al := strings.Join(conf.AnnotationList(), ":")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
671 al, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), al)
42
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
672 C.xdwhbaddatn(C.CString(kt_sorted), C.CString(al))
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
673 step_start = print_time(step_start)
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
674
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
675 /* ERASE HOUKATSU */
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
676 print_step("包括除去")
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
677 ktxt, _, _ := transform.String(japanese.ShiftJIS.NewEncoder(), "要介護")
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
678 htxt, _, _ := transform.String(japanese.ShiftJIS.NewEncoder(), "包括支援センター")
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
679 C.xdwerase(C.CString(hs_sorted), C.CString(ktxt), C.CString(htxt))
41
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
680 step_start = print_time(step_start)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
681
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
682 /* OPTIMIZE OUTPUT-FILE */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
683 print_step("最適化")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
684 hs_opt := filepath.Join(outputdir, "hs.xdw")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
685 C.xdwopt(C.CString(hs_sorted), C.CString(hs_opt))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
686 fw_opt := filepath.Join(outputdir, "fw.xdw")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
687 C.xdwopt(C.CString(fw_sorted), C.CString(fw_opt))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
688 kt_opt := filepath.Join(outputdir, "kt.xdw")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
689 C.xdwopt(C.CString(kt_sorted), C.CString(kt_opt))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
690 step_start = print_time(step_start)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
691
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
692 /* OUTPUT CSV */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
693 print_step("CSV出力")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
694 outcsv = filepath.Join(outputdir, outcsv)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
695 fcsv, err := os.OpenFile(outcsv, os.O_RDWR|os.O_CREATE, 0644)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
696 if err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
697 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
698 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
699 for i, s := range sorttable {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
700 t := strings.Split(s, "#")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
701 u := strings.ReplaceAll(t[1], ":", ",")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
702 u, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), u)
42
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
703 h := t[2]
41
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
704 n, _, _ := transform.String(japanese.ShiftJIS.NewEncoder(), hash_hhs[h])
42
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
705 // seq, hno, name, kaigo, fw, kyotaku
c58172a59534 bug fix.
pyon@macmini
parents: 41
diff changeset
706 fmt.Fprintf(fcsv, "%04d,%s,%s,%s\n", i + 1, h, n, u)
41
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
707 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
708 if err := fcsv.Close(); err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
709 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
710 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
711 step_start = print_time(step_start)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
712
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
713 /* PDF */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
714 print_step("負担割合証割付PDF作成")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
715 fwpdf := filepath.Join(tmpdir, "fw.pdf")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
716 C.xdw2pdf(C.CString(fw_opt), C.CString(fwpdf)) // 2min
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
717 step_start = print_time(step_start)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
718
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
719 print_step("負担割合証PDF割付")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
720 fw4pdf := filepath.Join(outputdir, "fw4.pdf")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
721 cmd := exec.Command("fw4.exe", fwpdf, fw4pdf, tmpdir)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
722 if err := cmd.Run(); err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
723 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
724 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
725 step_start = print_time(step_start)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
726
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
727 print_step("終了")
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
728 step_start = print_time(step_start)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
729
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
730 /* REMOVE TEMP-FILE */
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
731 if flg_log {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
732 logfile2 := filepath.Join(".", strings.Replace(logfile, tmpdir, "", 1))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
733 os.Link(logfile, logfile2)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
734 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
735
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
736 if !flg_debug {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
737 if err := os.RemoveAll(tmpdir); err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
738 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
739 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
740 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
741 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
742
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
743 func make_sort_key(fw int, kaigo, h string) string {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
744 key := fmt.Sprintf("%d:", 9 - fw)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
745 if strings.HasPrefix(kaigo, "要支援") {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
746 key += "1"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
747 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
748 if strings.HasPrefix(kaigo, "要介護") {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
749 key += "2"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
750 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
751 switch {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
752 case strings.HasSuffix(kaigo, "1"):
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
753 key += "1:"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
754 case strings.HasSuffix(kaigo, "2"):
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
755 key += "2:"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
756 case strings.HasSuffix(kaigo, "3"):
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
757 key += "3:"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
758 case strings.HasSuffix(kaigo, "4"):
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
759 key += "4:"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
760 case strings.HasSuffix(kaigo, "5"):
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
761 key += "5:"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
762 default:
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
763 key += "00:"
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
764 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
765 return key + h
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
766 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
767
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
768 func xdw2txt(file string) (txt []string) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
769 s := C.GoString(C.xdw2txt(C.CString(file)))
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
770 r := strings.NewReader(s)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
771 tr := transform.NewReader(r, japanese.ShiftJIS.NewDecoder())
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
772 buf := bufio.NewScanner(tr)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
773 for buf.Scan() {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
774 txt = append(txt, buf.Text())
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
775 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
776 return;
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
777 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
778
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
779 func read_conf(file string) (conf Config, err error) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
780 content, err := ioutil.ReadFile(file)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
781 if err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
782 log.Fatal(err)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
783 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
784 err = json.Unmarshal(content, &conf)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
785 return
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
786 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
787
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
788 func print_step(msg string) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
789 s := fmt.Sprintf("\n[%d/%d] %s\n", step, totalstep, msg)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
790 step++
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
791 fmt.Print(s)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
792 save_log(s)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
793 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
794
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
795 func print_time(t time.Time) time.Time {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
796 now := time.Now()
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
797 if !flg_time {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
798 return now
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
799 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
800 elapsed := now.Sub(t)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
801 total := now.Sub(start)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
802 s := fmt.Sprintf("---- Elapsed: %v (total = %v) @ %02d:%02d\n", elapsed, total, now.Hour(), now.Minute())
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
803 fmt.Print(s)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
804 save_log(s)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
805 return now
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
806 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
807
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
808 func print_debug(msg []string) {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
809 if !flg_debug {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
810 return
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
811 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
812 s := ""
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
813 if len(msg) == 1 {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
814 s = fmt.Sprintf("----- %s\n", msg)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
815 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
816 for i, s := range msg {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
817 s += fmt.Sprintf("%05d %s\n", i, s)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
818 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
819 fmt.Print(s)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
820 save_log(s)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
821 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
822
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
823 func save_log(logtxt string) error {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
824 if !flg_log {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
825 return nil
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
826 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
827 f, err := os.OpenFile(logfile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
828 if err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
829 return err
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
830 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
831 if _, err := f.Write([]byte(logtxt)); err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
832 f.Close()
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
833 return err
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
834 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
835 if err := f.Close(); err != nil {
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
836 return err
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
837 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
838 return nil
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
839 }
34a474fb83c3 add perori/porori/nk.
pyon@macmini
parents:
diff changeset
840