質問編集履歴

4

一部修正

2022/06/13 08:40

投稿

studyprg
studyprg

スコア57

test CHANGED
File without changes
test CHANGED
@@ -145,8 +145,7 @@
145
145
  タイトルは取得できましたが,idnumが表示されてないです.
146
146
  ```terminal
147
147
 
148
-
149
-
148
+ 最後の方を表示
150
149
 
151
150
  title is 島田洋七(ID:).
152
151
  title is 大砂土村(ID:).

3

ソースコード,状況などを更新.

2022/06/13 08:38

投稿

studyprg
studyprg

スコア57

test CHANGED
File without changes
test CHANGED
@@ -57,7 +57,7 @@
57
57
  ソースコード
58
58
  ---
59
59
 
60
- ```Wiki_getter3_titlel.c
60
+ ```Wiki_getter3_title.c
61
61
  #include <stdio.h>
62
62
  #include <stdlib.h>
63
63
  #include <string.h>
@@ -94,11 +94,11 @@
94
94
  int len = p2 - p1;
95
95
  if (len >= 0)
96
96
  {
97
- // memcpy(title, p1, len);//これをやるべきなのか?参考までに
97
+ memcpy(title, p1, len);//これをやるべきなのか?参考までに
98
- // fseek(fp, -b, SEEK_CUR);
98
+ //fseek(fp, -b, SEEK_CUR);
99
- fseek(fp, p + (p1 - line), SEEK_SET); //<title>まで戻る
99
+ //fseek(fp, p + (p1 - line), SEEK_SET); //<title>まで戻る
100
- fgets(title, len + 1, fp); //読み込んでタイトルに格納
100
+ //fgets(title, len + 1, fp); //読み込んでタイトルに格納
101
- // title[len] = '\0'; // 終端記号を忘れずに追加
101
+ title[len] = '\0'; // 終端記号を忘れずに追加
102
102
 
103
103
  char *p3, *p4;
104
104
  p3 = strstr(line, "<id>");
@@ -113,180 +113,51 @@
113
113
  int len = p4 - p3;
114
114
  if (len >= 0)
115
115
  {
116
- // memcpy(title, p1, len);//これをやるべきなのか?参考までに
116
+ memcpy(idnum, p1, len);//これをやるべきなのか?参考までに
117
117
  // fseek(fp, -b, SEEK_CUR);
118
- fseek(fp, p + (p3 - line), SEEK_SET); //<title>まで戻る
118
+ //fseek(fp, p + (p3 - line), SEEK_SET); //<id>まで戻る
119
- fgets(idnum, len + 1, fp); //読み込んでタイトルに格納
119
+ //fgets(idnum, len + 1, fp); //読み込んでタイトルに格納
120
- // title[len] = '\0'; // 終端記号を忘れずに追加
120
+ idnum[len] = '\0'; // 終端記号を忘れずに追加
121
121
 
122
122
 
123
- // frite();
123
+
124
- // fprintf(fw, "%s\n", title);
125
124
  }
126
125
  }
127
126
  }
128
- printf("title\tis\t%s(ID:%s).\n", title, idnum);
127
+ printf("title\tis\t%s\tID:%s\n", title, idnum);
128
+ fprintf(fw, "%s\t%s\n", line,idnum);
129
129
  }
130
130
 
131
- /*
131
+
132
- if (strstr(line, "<page>"))
133
- pb[0]=p;
134
- else if (strstr(line, "</page>")){
135
- pb[1] = p - pb[0]+1;
136
- fseek(fp,-pb[1],SEEK_SET);
137
-
138
- fprintf(stderr, "start=%d size=%d BUFSIZ=%d\n", pb[0], pb[1], BUFSIZ);
139
- // printf("%d",fp);
140
- fgets(line,pb[1],fp);
141
- //fwrite(pb, sizeof(size_t), 2, fw); // ...
142
- //fprintf(fw, "%hhd\t%hhd\n", pb[0], pb[1]); //... 名残
143
- fprintf(fw,"%s \n",line);
144
- }
145
- */
146
- /*
147
- fseek(fp, pb[0], SEEK_SET);
148
- pb[0] = p;
149
- printf("現在のファイルポインタの位置は「%d」です。, 読み込むバイトは「%d」\n", pb[0], pb[1]); //
150
- fread(line, sizeof(char), pb[1], fp);
151
- fprintf(gt, "%s \n", line);
152
- line[pb[1]] = 0;
153
- }
154
- */
155
132
  }
156
133
  printf("process ok");
157
134
  free(line);
135
+ free(idnum);
158
136
  free(title);
159
137
  fclose(fp);
160
138
  fclose(fw);
161
139
  }
162
- #include <stdio.h>
163
- #include <stdlib.h>
164
- #include <string.h>
165
- #define SIZE 256 * 1024 * 1024
166
- int main()
167
- {
168
-
169
- int p = 0;
170
- int b = 0;
171
- int pb[5] = {};
172
- int id = 0;
173
- char *idnum = malloc(SIZE);
174
- char *line = malloc(SIZE);
175
- char *title = malloc(SIZE);
176
- FILE *fp = NULL; //読み込み
177
- FILE *fw = NULL; //書き込み
178
- fp = fopen("get_text_all.txt", "r");
179
- fw = fopen("get_title_id.txt", "w");
180
- if ((fp == NULL) || (fw == NULL))
181
- {
182
- printf("failed load ファイル");
183
- abort();
184
- }
185
-
186
- while (p = ftell(fp), fgets(line, BUFSIZ, fp))
187
- {
188
- char *p1, *p2;
189
- p1 = strstr(line, "<title>");
190
- p2 = strstr(line, "</title>");
191
- if (p1 && p2) // 1行に両方見つかった
192
- {
193
- b = strlen("<title>");
194
- p1 += strlen("<title>"); // <title>の次の位置
195
- int len = p2 - p1;
196
- if (len >= 0)
197
- {
198
- // memcpy(title, p1, len);//これをやるべきなのか?参考までに
199
- // fseek(fp, -b, SEEK_CUR);
200
- fseek(fp, p + (p1 - line), SEEK_SET); //<title>まで戻る
201
- fgets(title, len + 1, fp); //読み込んでtitleに格納
202
- // title[len] = '\0'; // 終端記号を忘れずに追加
203
-
204
- char *p3, *p4;
205
- p3 = strstr(line, "<id>");
206
- p4 = strstr(line, "</id>");
207
- // frite();
208
- // fprintf(fw, "%s\n", title);
209
-
210
- if (p3 && p4) // 1行に両方見つかった
211
- {
212
- b = strlen("<id>");
213
- p3 += strlen("</id>"); // <title>の次の位置
214
- int len = p4 - p3;
215
- if (len >= 0)
216
- {
217
- // memcpy(title, p1, len);//これをやるべきなのか?参考までに
218
- // fseek(fp, -b, SEEK_CUR);
219
- fseek(fp, p + (p3 - line), SEEK_SET); //<title>の始点へ移動.
220
- fgets(idnum, len + 1, fp); //読み込んでidnumに格納
221
- // title[len] = '\0'; // 終端記号を忘れずに追加
222
-
223
-
224
- // frite();
225
- // fprintf(fw, "%s\n", title);
226
- }
227
- }
228
- }
229
- printf("title\tis\t%s(ID:%s).\n", title, idnum);
230
- }
231
-
232
- /*
233
- if (strstr(line, "<page>"))
234
- pb[0]=p;
235
- else if (strstr(line, "</page>")){
236
- pb[1] = p - pb[0]+1;
237
- fseek(fp,-pb[1],SEEK_SET);
238
-
239
- fprintf(stderr, "start=%d size=%d BUFSIZ=%d\n", pb[0], pb[1], BUFSIZ);
240
- // printf("%d",fp);
241
- fgets(line,pb[1],fp);
242
- //fwrite(pb, sizeof(size_t), 2, fw); // ...
243
- //fprintf(fw, "%hhd\t%hhd\n", pb[0], pb[1]); //... 名残
244
- fprintf(fw,"%s \n",line);
245
- }
246
- */
247
- /*
248
- fseek(fp, pb[0], SEEK_SET);
249
- pb[0] = p;
250
- printf("現在のファイルポインタの位置は「%d」です。, 読み込むバイトは「%d」\n", pb[0], pb[1]); //
251
- fread(line, sizeof(char), pb[1], fp);
252
- fprintf(gt, "%s \n", line);
253
- line[pb[1]] = 0;
254
- }
255
- */
256
- }
257
- printf("process ok");
258
- free(line);
259
- free(title);
260
- fclose(fp);
261
- fclose(fw);
262
- }
263
140
 
264
141
  ```
265
142
  エラーについて.
266
143
  ---
267
- 以下に示しますが,idが表示されず,取得したタイトルは後半部分がおかしくなってます.
144
+ 以下に示しますが,titleは表示されていますがidnumが表示されず,~~打ち消し線取得したタイトルは後半部分がおかしくなってます.~~
268
-
145
+ タイトルは取得できましたが,idnumが表示されてないです.
269
146
  ```terminal
270
- title is 遠山景晋(ID:0).
147
+
271
- title is 双子 (映画)(ID:0).
272
- title is 鍋島閑叟(ID:0).
273
- title is 産業奨励会館(ID:0).
274
- title is ユダヤ史関連人物の一覧(ID:0).
275
148
 
276
149
 
277
150
 
278
- (ID:).
151
+ title is 島田洋七(ID:).
279
- title is <ns>0</n(ID:).//<ns>0</ns>の一部を読んでる?
152
+ title is 大砂土村(ID:).
280
- title is <ns>0</n(ID:).
153
+ title is J級潜水艦 (イギリス海軍)(ID:).
281
- title is <ns>0</ns>
282
- (ID:).//改行コードも読んでる?
283
- title is <ns>0</ns>
284
- (ID:).//改行コードも読んでる?
285
- title is <ns>0</n(ID:).
154
+ title is ランカウイ島(ID:).
286
- title is <ns>0</n(ID:).
155
+ title is 外山雄三(ID:).
287
-
156
+ title is 工藤順子(ID:).
157
+ process ok
288
- ```
158
+ ```
289
- ループの終了位置をミスしているのかな?
159
+ ~~ループの終了位置をミスしているのかな?~~
160
+ idnumが空っぽいですね.
290
161
 
291
162
  参考程度にget_all_textの一例と欲しい部分です。これが大量に入ったファイルが欲しいです。
292
163
  ```get_all_text.txt

2

コード修正など.

2022/06/13 08:22

投稿

studyprg
studyprg

スコア57

test CHANGED
@@ -1 +1 @@
1
- fgets一文字目?になる.
1
+ [c]wikidumpデータから読み込んだ出力おかしい
test CHANGED
@@ -2,8 +2,8 @@
2
2
  ---
3
3
  自然言語処理について勉強しています。
4
4
  Wikipediaのdumpデータから本文を抜き出して処理をしようと思ってます。
5
- xmlの処理について試しているのですが、出力結果が想定とは全然違って困っています。
5
+ 、出力結果が想定とは全然違って困っています。
6
- 欲しい出力は,,<title>~~</title>の中身です。(あとidも取得したい)
6
+ 欲しい出力は,,<title>hoge</title>と<id>hoge</id>の中身です。(hoge部分)
7
7
  後述の出力の一文字目が?になってて困っています。
8
8
  プログラミングはあまり得意ではないです。
9
9
 
@@ -75,7 +75,7 @@
75
75
  FILE *fp = NULL; //読み込み
76
76
  FILE *fw = NULL; //書き込み
77
77
  fp = fopen("get_text_all.txt", "r");
78
- fw = fopen("get_text_title.txt", "w");
78
+ fw = fopen("get_title_id.txt", "w");
79
79
  if ((fp == NULL) || (fw == NULL))
80
80
  {
81
81
  printf("failed load ファイル");
@@ -118,14 +118,14 @@
118
118
  fseek(fp, p + (p3 - line), SEEK_SET); //<title>まで戻る
119
119
  fgets(idnum, len + 1, fp); //読み込んでタイトルに格納
120
120
  // title[len] = '\0'; // 終端記号を忘れずに追加
121
- id = atoi(idnum);
121
+
122
122
 
123
123
  // frite();
124
124
  // fprintf(fw, "%s\n", title);
125
125
  }
126
126
  }
127
127
  }
128
- printf("title\tis\t%s(ID:%d).\n", title, id);
128
+ printf("title\tis\t%s(ID:%s).\n", title, idnum);
129
129
  }
130
130
 
131
131
  /*
@@ -159,37 +159,141 @@
159
159
  fclose(fp);
160
160
  fclose(fw);
161
161
  }
162
+ #include <stdio.h>
163
+ #include <stdlib.h>
164
+ #include <string.h>
165
+ #define SIZE 256 * 1024 * 1024
166
+ int main()
167
+ {
168
+
169
+ int p = 0;
170
+ int b = 0;
171
+ int pb[5] = {};
172
+ int id = 0;
173
+ char *idnum = malloc(SIZE);
174
+ char *line = malloc(SIZE);
175
+ char *title = malloc(SIZE);
176
+ FILE *fp = NULL; //読み込み
177
+ FILE *fw = NULL; //書き込み
178
+ fp = fopen("get_text_all.txt", "r");
179
+ fw = fopen("get_title_id.txt", "w");
180
+ if ((fp == NULL) || (fw == NULL))
181
+ {
182
+ printf("failed load ファイル");
183
+ abort();
184
+ }
185
+
186
+ while (p = ftell(fp), fgets(line, BUFSIZ, fp))
187
+ {
188
+ char *p1, *p2;
189
+ p1 = strstr(line, "<title>");
190
+ p2 = strstr(line, "</title>");
191
+ if (p1 && p2) // 1行に両方見つかった
192
+ {
193
+ b = strlen("<title>");
194
+ p1 += strlen("<title>"); // <title>の次の位置
195
+ int len = p2 - p1;
196
+ if (len >= 0)
197
+ {
198
+ // memcpy(title, p1, len);//これをやるべきなのか?参考までに
199
+ // fseek(fp, -b, SEEK_CUR);
200
+ fseek(fp, p + (p1 - line), SEEK_SET); //<title>まで戻る
201
+ fgets(title, len + 1, fp); //読み込んでtitleに格納
202
+ // title[len] = '\0'; // 終端記号を忘れずに追加
203
+
204
+ char *p3, *p4;
205
+ p3 = strstr(line, "<id>");
206
+ p4 = strstr(line, "</id>");
207
+ // frite();
208
+ // fprintf(fw, "%s\n", title);
209
+
210
+ if (p3 && p4) // 1行に両方見つかった
211
+ {
212
+ b = strlen("<id>");
213
+ p3 += strlen("</id>"); // <title>の次の位置
214
+ int len = p4 - p3;
215
+ if (len >= 0)
216
+ {
217
+ // memcpy(title, p1, len);//これをやるべきなのか?参考までに
218
+ // fseek(fp, -b, SEEK_CUR);
219
+ fseek(fp, p + (p3 - line), SEEK_SET); //<title>の始点へ移動.
220
+ fgets(idnum, len + 1, fp); //読み込んでidnumに格納
221
+ // title[len] = '\0'; // 終端記号を忘れずに追加
222
+
223
+
224
+ // frite();
225
+ // fprintf(fw, "%s\n", title);
226
+ }
227
+ }
228
+ }
229
+ printf("title\tis\t%s(ID:%s).\n", title, idnum);
230
+ }
231
+
232
+ /*
233
+ if (strstr(line, "<page>"))
234
+ pb[0]=p;
235
+ else if (strstr(line, "</page>")){
236
+ pb[1] = p - pb[0]+1;
237
+ fseek(fp,-pb[1],SEEK_SET);
238
+
239
+ fprintf(stderr, "start=%d size=%d BUFSIZ=%d\n", pb[0], pb[1], BUFSIZ);
240
+ // printf("%d",fp);
241
+ fgets(line,pb[1],fp);
242
+ //fwrite(pb, sizeof(size_t), 2, fw); // ...
243
+ //fprintf(fw, "%hhd\t%hhd\n", pb[0], pb[1]); //... 名残
244
+ fprintf(fw,"%s \n",line);
245
+ }
246
+ */
247
+ /*
248
+ fseek(fp, pb[0], SEEK_SET);
249
+ pb[0] = p;
250
+ printf("現在のファイルポインタの位置は「%d」です。, 読み込むバイトは「%d」\n", pb[0], pb[1]); //
251
+ fread(line, sizeof(char), pb[1], fp);
252
+ fprintf(gt, "%s \n", line);
253
+ line[pb[1]] = 0;
254
+ }
255
+ */
256
+ }
257
+ printf("process ok");
258
+ free(line);
259
+ free(title);
260
+ fclose(fp);
261
+ fclose(fw);
262
+ }
162
263
 
163
264
  ```
164
265
  エラーについて.
165
266
  ---
166
- 以下に示しますが,取得したタイトルの一文字目?になってます.
267
+ 以下に示しますが,idが表示されず,取得したタイトルは後半部分おかしくなってます.
167
- idは仮でこの後作る予定です.
168
268
 
169
269
  ```terminal
170
- title is 「?進村 (ID:0)」.
171
- title is 「?トル封神 (ID:0)」.
172
- title is 「?津宗久 (ID:0)」.
173
- title is 「?岡県立浜北西高等学校 (ID:0)」.
174
- title is 「?卓 (ID:0).
270
+ title is 遠山景晋(ID:0).
271
+ title is 双子 (映画)(ID:0).
175
- title is 「?居雁 (ID:0).
272
+ title is 鍋島閑叟(ID:0).
176
- title is 「?ビエト連邦最高会議 (ID:0)」.
177
- title is 「?田洋七 (ID:0).
273
+ title is 産業奨励会館(ID:0).
178
- title is 「?砂土村 (ID:0)」.
179
- title is 「??潜水艦 (イギリス海軍) (ID:0)」.
180
- title is 「?ンカウイ島 (ID:0).
274
+ title is ユダヤ史関連人物の一覧(ID:0).
275
+
276
+
277
+
278
+ (ID:).
279
+ title is <ns>0</n(ID:).//<ns>0</ns>の一部を読んでる?
181
- title is 「?山雄三 (ID:0).
280
+ title is <ns>0</n(ID:).
281
+ title is <ns>0</ns>
282
+ (ID:).//改行コードも読んでる?
283
+ title is <ns>0</ns>
284
+ (ID:).//改行コードも読んでる?
182
- title is 「?藤順子 (ID:0).
285
+ title is <ns>0</n(ID:).
286
+ title is <ns>0</n(ID:).
183
287
 
184
288
  ```
185
-
289
+ ループの終了位置をミスしているのかな?
186
-
290
+
187
- 参考程度にakk_textの一例です。これが大量に入ったファイルが欲しいです。
291
+ 参考程度にget_all_textの一例と欲しい部分です。これが大量に入ったファイルが欲しいです。
188
292
  ```get_all_text.txt
189
293
  <page>
190
- <title>鳥取砂丘</title>
294
+ <title>鳥取砂丘</title>//ここが欲しい
191
- <ns>0</ns>
295
+ <ns>0</ns>//ここはいらない
192
- <id>19812</id>
296
+ <id>19812</id>//ここも欲しい
193
297
  <revision>
194
298
  <id>53717095</id>
195
299
  <parentid>53211643</parentid>

1

ソース修正

2022/06/13 07:58

投稿

studyprg
studyprg

スコア57

test CHANGED
File without changes
test CHANGED
@@ -47,7 +47,7 @@
47
47
  <sha1>chmmooepsrvwuo4n0ziki50nn5rvhj7</sha1>
48
48
  </revision>
49
49
  //</page>の手前までで終わっている.
50
- <page>
50
+ <page>//次のページ
51
51
  ...
52
52
  ...
53
53
  ```
@@ -65,76 +65,99 @@
65
65
  int main()
66
66
  {
67
67
 
68
- int p, p1 = 0;
68
+ int p = 0;
69
- int b = 0;
69
+ int b = 0;
70
- int pb[5] = {};
70
+ int pb[5] = {};
71
- int id = 0;//id入れとく用
71
+ int id = 0;
72
- char *idnum = malloc(SIZE);
72
+ char *idnum = malloc(SIZE);
73
- char *line = malloc(SIZE);
73
+ char *line = malloc(SIZE);
74
- char *title = malloc(SIZE);
74
+ char *title = malloc(SIZE);
75
- FILE *fp = NULL; //読み込み
75
+ FILE *fp = NULL; //読み込み
76
- FILE *fw = NULL; //書き込み
76
+ FILE *fw = NULL; //書き込み
77
- fp = fopen("get_text_all.txt", "r");
77
+ fp = fopen("get_text_all.txt", "r");
78
- fw = fopen("get_text_title.txt", "w");
78
+ fw = fopen("get_text_title.txt", "w");
79
- if ((fp == NULL) || (fw == NULL))
79
+ if ((fp == NULL) || (fw == NULL))
80
+ {
81
+ printf("failed load ファイル");
82
+ abort();
83
+ }
84
+
85
+ while (p = ftell(fp), fgets(line, BUFSIZ, fp))
86
+ {
87
+ char *p1, *p2;
88
+ p1 = strstr(line, "<title>");
89
+ p2 = strstr(line, "</title>");
90
+ if (p1 && p2) // 1行に両方見つかった
80
91
  {
92
+ b = strlen("<title>");
93
+ p1 += strlen("<title>"); // <title>の次の位置
94
+ int len = p2 - p1;
95
+ if (len >= 0)
96
+ {
97
+ // memcpy(title, p1, len);//これをやるべきなのか?参考までに
98
+ // fseek(fp, -b, SEEK_CUR);
99
+ fseek(fp, p + (p1 - line), SEEK_SET); //<title>まで戻る
100
+ fgets(title, len + 1, fp); //読み込んでタイトルに格納
101
+ // title[len] = '\0'; // 終端記号を忘れずに追加
102
+
103
+ char *p3, *p4;
104
+ p3 = strstr(line, "<id>");
105
+ p4 = strstr(line, "</id>");
106
+ // frite();
107
+ // fprintf(fw, "%s\n", title);
108
+
109
+ if (p3 && p4) // 1行に両方見つかった
110
+ {
81
- printf("failed load ファイル");
111
+ b = strlen("<id>");
112
+ p3 += strlen("</id>"); // <title>の次の位置
113
+ int len = p4 - p3;
114
+ if (len >= 0)
115
+ {
116
+ // memcpy(title, p1, len);//これをやるべきなのか?参考までに
117
+ // fseek(fp, -b, SEEK_CUR);
118
+ fseek(fp, p + (p3 - line), SEEK_SET); //<title>まで戻る
119
+ fgets(idnum, len + 1, fp); //読み込んでタイトルに格納
120
+ // title[len] = '\0'; // 終端記号を忘れずに追加
82
- abort();
121
+ id = atoi(idnum);
122
+
123
+ // frite();
124
+ // fprintf(fw, "%s\n", title);
125
+ }
126
+ }
127
+ }
128
+ printf("title\tis\t%s(ID:%d).\n", title, id);
83
129
  }
84
130
 
85
- while (p = ftell(fp), fgets(line, BUFSIZ, fp))
86
- {
87
- char *p1, *p2;
131
+ /*
88
- p1 = strstr(line, "<title>");
132
+ if (strstr(line, "<page>"))
133
+ pb[0]=p;
89
- p2 = strstr(line, "</title>");
134
+ else if (strstr(line, "</page>")){
90
- if (p1 && p2) // 1行に両方見つかった
91
- {
92
- b = strlen("<title>");
93
- p1 += strlen("<title>"); // <title>の次の位置
94
- int len = p2 - p1;
135
+ pb[1] = p - pb[0]+1;
95
- if (len >= 0)
96
- {
97
- // memcpy(title, p1, len);//これをやるべきなのか?参考までに
98
- fseek(fp, -b, SEEK_CUR);
136
+ fseek(fp,-pb[1],SEEK_SET);
99
- fseek(fp, -len, SEEK_CUR); //<title>まで戻る
137
+
100
- fgets(title, len - 1, fp); //読み込んでタイトルに格納
101
- // title[len] = '\0'; // 終端記号追加(いるのか不安)
102
- printf("title is 「%s (ID:%d)」.\n", title, id);
138
+ fprintf(stderr, "start=%d size=%d BUFSIZ=%d\n", pb[0], pb[1], BUFSIZ);
103
- // frite();
104
- // fprintf(fw, "%s\n", title);
139
+ // printf("%d",fp);
140
+ fgets(line,pb[1],fp);
141
+ //fwrite(pb, sizeof(size_t), 2, fw); // ...
142
+ //fprintf(fw, "%hhd\t%hhd\n", pb[0], pb[1]); //... 名残
143
+ fprintf(fw,"%s \n",line);
105
- }
144
+ }
145
+ */
146
+ /*
147
+ fseek(fp, pb[0], SEEK_SET);
148
+ pb[0] = p;
149
+ printf("現在のファイルポインタの位置は「%d」です。, 読み込むバイトは「%d」\n", pb[0], pb[1]); //
150
+ fread(line, sizeof(char), pb[1], fp);
151
+ fprintf(gt, "%s \n", line);
152
+ line[pb[1]] = 0;
106
- }
153
+ }
107
-
108
- /*
154
+ */
109
- if (strstr(line, "<page>"))
110
- pb[0]=p;
111
- else if (strstr(line, "</page>")){
112
- pb[1] = p - pb[0]+1;
113
- fseek(fp,-pb[1],SEEK_SET);
114
-
115
- fprintf(stderr, "start=%d size=%d BUFSIZ=%d\n", pb[0], pb[1], BUFSIZ);
116
- // printf("%d",fp);
117
- fgets(line,pb[1],fp);
118
- //fwrite(pb, sizeof(size_t), 2, fw); // ...
119
- //fprintf(fw, "%hhd\t%hhd\n", pb[0], pb[1]); //... 名残
120
- fprintf(fw,"%s \n",line);
121
- }
155
+ }
122
- */
123
- /*
124
- fseek(fp, pb[0], SEEK_SET);
125
- pb[0] = p;
126
- printf("現在のファイルポインタの位置は「%d」です。, 読み込むバイトは「%d」\n", pb[0], pb[1]); //
127
- fread(line, sizeof(char), pb[1], fp);
128
- fprintf(gt, "%s \n", line);
129
- line[pb[1]] = 0;
130
- }
131
- */
132
- }
133
- printf("process ok");
156
+ printf("process ok");
134
- free(line);
157
+ free(line);
135
- free(title);
158
+ free(title);
136
- fclose(fp);
159
+ fclose(fp);
137
- fclose(fw);
160
+ fclose(fw);
138
161
  }
139
162
 
140
163
  ```