質問編集履歴

3

追記更新

2022/07/04 12:16

投稿

studyprg
studyprg

スコア57

test CHANGED
File without changes
test CHANGED
@@ -136,7 +136,7 @@
136
136
 
137
137
 
138
138
  ```
139
- 次にソースコードです.
139
+ 次にソースコードです.//追記に現在のソースを追加してます.
140
140
  ```
141
141
  #include <stdio.h>
142
142
  #include <stdlib.h>
@@ -192,28 +192,111 @@
192
192
 
193
193
 
194
194
  一応現在の実行結果です.
195
+ ### 追記:
196
+ 今のソースコードです.
197
+ タイトルとid処理を一通りやって終わってるようです.
195
- 追記:1週したらもう一度頭から読み込み直すはずのfr2が一回だけ止まってるようです.
198
+ 以下ソースコードと実行結果で.idとタイトル表示てるようです.
199
+
200
+ ```ここに言語を入力
201
+ #include <stdio.h>
202
+ #include <stdlib.h>
203
+ #include <string.h>
204
+ #define SIZE 256 * 1024 * 1024
205
+ int main()
206
+ {
207
+
208
+ int p = 0;
209
+ int pb[3] = {};
210
+ char *line = malloc(SIZE);
211
+ char *title = malloc(SIZE);
212
+ int *id = malloc(SIZE);
213
+ char *text = malloc(SIZE);
214
+ char *stitle=malloc(SIZE);
215
+ FILE *fp = NULL;
216
+ FILE *fr = NULL;
217
+ FILE *fr2 = NULL;
218
+ FILE *gt = NULL;
219
+ fp = fopen("jawiki-20211220-pages-articles-multistream2.xml", "r");//大元.wiki記事
220
+ fr = fopen("list_history0.txt", "r"); //読み込むファイル検索文字列
221
+ fr2 = fopen("get_X1.txt", "r");//読み込むファイル2タイトルとidが記入
222
+ gt = fopen("history_0text.txt", "w"); //書き込むファイル
223
+ while (fscanf(fr, "%s\n", stitle) != EOF)
224
+ {
225
+ printf("Stitle(検索対象)is %s.\n", stitle);
226
+ fr2 = fopen("get_X1.txt", "r");
227
+ while (fscanf(fr2, "%s\t%d\t%d\t%d\n", title, id, &pb[0], &pb[1]) != EOF)
228
+ {
229
+ printf("確認用title:%s\tID:%d\n",title,id);
230
+ if ((strcmp(stitle, title) == 0)) //タイトルが見つかった時.
231
+ {
232
+ printf("%s is found! title:%s\n", stitle, title);
233
+ fseek(fp, pb[0], SEEK_SET);
234
+ fgets(text, pb[1], fp);
235
+ printf("%s\t%d\n%s", title, id, text);
236
+ }
237
+ else
238
+ {
239
+ continue;
240
+ }
241
+
242
+ }
243
+ fclose(fr2);
244
+ }
245
+ printf("\n\n\nprocess ok!\n\n\n");
246
+ fclose(fp);
247
+ fclose(fr);
248
+
249
+ fclose(gt);
250
+ }
251
+
252
+ ```
253
+
196
254
  ```cmd
197
255
 
198
- 確認用title:バトル封神 ID:849640
199
- 確認用title:島津宗久 ID:642857
256
+ 確認用title:警察学校 ID:1463812096
257
+ 確認用title:ファイル:Kasai-ichijyoji-kaizan1.JPG ID:1463812096
258
+ 確認用title:Template:石勝線 ID:1463812096
259
+ 確認用title:ロドピ山脈 ID:1463812096
260
+ 確認用title:ボブ・ゲルドフ ID:1463812096
261
+ 確認用title:Template:根室本線2 ID:1463812096
200
- 確認用title:静岡県立浜北西高等学校 ID:1307385
262
+ 確認用title:商船三井ビルディング ID:1463812096
263
+ 確認用title:Template:根室本線1 ID:1463812096
264
+ 確認用title:ファイル:Kasai-ichijyoji-Jougyoudou.JPG ID:1463812096
265
+ 確認用title:Category:干潟 ID:1463812096
266
+ 確認用title:Template:根室本線3 ID:1463812096
267
+ 確認用title:ジュゼッペ・マッツィーニ ID:1463812096
268
+ 確認用title:総括制御 ID:1463812096
201
- 確認用title:柳卓 ID:551069
269
+ 確認用title:羽車 ID:1463812096
270
+ 確認用title:Template:釧網本線 ID:1463812096
202
- 確認用title:ソビエト連邦最高会議 ID:1037035
271
+ 確認用title:劇団たいしゅう小説家 ID:1463812096
203
- 確認用title:島田洋七 ID:474
272
+ 確認用title:応急手当普及員 ID:1463812096
273
+ 確認用title:河内十人斬り ID:1463812096
274
+ 確認用title:Template:石北本線 ID:1463812096
275
+ 確認用title:宇佐美-網代バイパス ID:1463812096
276
+ 確認用title:ファイル:Kasai-ichijyoji-33jizo.JPG ID:1463812096
204
- 確認用title:大砂土村 ID:1556946
277
+ 確認用title:鈴木邦彦 ID:1463812096
278
+ 確認用title:(作曲家) ID:1463812096
279
+ 確認用title:島根県道201号湯里停車場祖式線 ID:1463812096
280
+ 確認用title:Template:宗谷本線 ID:1463812096
281
+ 確認用title:ゴーロン星人 ID:1463812096
282
+ 確認用title:ロベルト・デュラン ID:1463812096
283
+ 確認用title:アフォンソ1世 ID:1463812096
284
+ 確認用title:(ポルトガル王) ID:1463812096
285
+ 確認用title:グルンヴァルト ID:1463812096
286
+ 確認用title:島根県道186号美郷大森線 ID:1463812096
205
- 確認用title:J級潜水艦 ID:(イギリス海軍)
287
+ 確認用title:堀内昭義 ID:1463812096
288
+ 確認用title:ファイル:Akame48Taki-iriguchi.JPG ID:1463812096
289
+ 確認用title:出雲バイパス ID:1463812096
290
+ 確認用title:アズバーズ ID:1463812096
291
+ 確認用title:大沢悠里のにっぽん元気カンパニー ID:1463812096
292
+ 確認用title:堀口健治 ID:1463812096
293
+ 確認用title:島根県道288号瓜坂川合線 ID:1463812096
294
+ 確認用title:トヨタ・M型エンジン ID:1463812096
295
+ 確認用title:パルマラット ID:1463812096
296
+ 確認用title:地名に由来する小惑星の一覧 ID:1463812096
297
+ 確認用title:Wikipedia:削除依頼/アルバムの一覧 ID:1463812096
298
+ 確認用title:人名に因む名を持つ小惑星の一覧 ID:1463812096
299
+ 確認用title:日本神話に関する名を持つ小惑星の一覧 ID:1463812096
206
- 確認用title:1536292106 ID:ランカウイ島
300
+ 確認用title:吾妻橋 ID:1463812096
207
- 確認用title:1536295064 ID:外山雄三
208
- 確認用title:1536302448 ID:工藤順子
209
- 確認用title:1536318445 ID:工藤順子
210
- Stitle(検索対象)is ファイル:十弗駅看板.jpg.
211
- Stitle(検索対象)is 桂米朝.
212
- Stitle(検索対象)is 国道101号.
213
- Stitle(検索対象)is 笑福亭松鶴.
214
- Stitle(検索対象)is リサジュー図形.
215
- Stitle(検索対象)is ムラカ.
216
- Stitle(検索対象)is 日淳.
217
- Stitle(検索対象)is 井原裕士.
218
- ```
301
+ ```
219
-
302
+

2

追記

2022/07/04 06:50

投稿

studyprg
studyprg

スコア57

test CHANGED
File without changes
test CHANGED
@@ -151,7 +151,7 @@
151
151
  char *title = malloc(SIZE);
152
152
  char *id = malloc(SIZE);
153
153
  char *text = malloc(SIZE);
154
- char *stitle;
154
+ char *stitle=malloc(SIZE);
155
155
  FILE *fp = NULL;
156
156
  FILE *fr = NULL;
157
157
  FILE *fr2 = NULL;
@@ -165,7 +165,8 @@
165
165
  printf("Stitle(検索対象)is %s.\n", stitle);
166
166
  while (fscanf(fr2, "%s\t%s\t%d\t%d\n", title, id, &pb[0], &pb[1]) != EOF)
167
167
  {
168
+ printf("確認用title:%s\tID:%s\n",title,id);
168
- if ((strcmp(stitle, title) == 0))//タイトルが見つかった時.
169
+ if ((strcmp(stitle, title) == 0)) //タイトルが見つかった時.
169
170
  {
170
171
  printf("%s is found! title:%s\n", stitle, title);
171
172
  fseek(fp, pb[0], SEEK_SET);
@@ -180,7 +181,7 @@
180
181
  }
181
182
 
182
183
  }
183
- printf("process ok!\n\n\n");
184
+ printf("\n\n\nprocess ok!\n\n\n");
184
185
  fclose(fp);
185
186
  fclose(fr);
186
187
  fclose(fr2);
@@ -191,26 +192,28 @@
191
192
 
192
193
 
193
194
  一応現在の実行結果です.
195
+ 追記:1週したらもう一度頭から読み込み直すはずのfr2が一回だけで止まってるようです.
194
196
  ```cmd
195
197
 
198
+ 確認用title:バトル封神 ID:849640
199
+ 確認用title:島津宗久 ID:642857
200
+ 確認用title:静岡県立浜北西高等学校 ID:1307385
196
- Stitle(検索対象)is 日本ゴルフツアー機構.
201
+ 確認用title:柳卓 ID:551069
202
+ 確認用title:ソビエト連邦最高会議 ID:1037035
197
- 日本ゴルフツアー機構は見つかりませんでした.
203
+ 確認用title:島田洋七 ID:474
204
+ 確認用title:大砂土村 ID:1556946
205
+ 確認用title:J級潜水艦 ID:(イギリス海軍)
206
+ 確認用title:1536292106 ID:ランカウイ島
207
+ 確認用title:1536295064 ID:外山雄三
208
+ 確認用title:1536302448 ID:工藤順子
209
+ 確認用title:1536318445 ID:工藤順子
198
210
  Stitle(検索対象)is ファイル:十弗駅看板.jpg.
199
- ファイル:十弗駅看板.jpgは見つかりませんでした.
200
211
  Stitle(検索対象)is 桂米朝.
201
- 桂米朝は見つかりませんでした.
202
212
  Stitle(検索対象)is 国道101号.
203
- 国道101号は見つかりませんでした.
204
213
  Stitle(検索対象)is 笑福亭松鶴.
205
- 笑福亭松鶴は見つかりませんでした.
206
214
  Stitle(検索対象)is リサジュー図形.
207
- リサジュー図形は見つかりませんでした.
208
215
  Stitle(検索対象)is ムラカ.
209
- ムラカは見つかりませんでした.
210
216
  Stitle(検索対象)is 日淳.
211
- 日淳は見つかりませんでした.
212
217
  Stitle(検索対象)is 井原裕士.
213
- 井原裕士は見つかりませんでした.
214
- process ok!
215
- ```
218
+ ```
216
-
219
+

1

一部修正

2022/07/03 16:40

投稿

studyprg
studyprg

スコア57

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,11 @@
4
4
  自然言語処理について勉強しています。
5
5
  Wikipediaのdumpデータから本文を抜き出して処理をしようと思ってます。
6
6
  xmlの処理について試しているのですが、出力結果が想定とは違って困っています。
7
+
8
+ やりたいこととしては以下です.
9
+ **・list_history0.txt の各行が欲しい記事の "タイトル" を示している。
10
+ ・get_X1.txt の各行が (xml ファイル内の記事の ) "タイトル", "id", "開始バイトオフセット", "バイトサイズ" を示している。
7
- 検索したい記事の文字列(list_history0.txt)が記事のタイトル,id,記事の開始バイトと記事のサイズのバイトが記入されているファイル(get_X1.txt)のタイトルがの時に記事の開始バイトと記事サイズのバイト読み込んでテキストファイルhistory_0text.txtに書き込んでいきたいで
11
+ list_history0.txt から一行ずつ読み込み、 get_X1.txt からタイトルが一致する行を探して"開始バイトオフセット", "バイトサイズ"利用して xml ファイルからその記事を取り出し、「タイトル(タブ)id(改行)記事」を history_0text.txt に書き**
8
12
 
9
13
  プログラミングはあまり得意ではないです。
10
14
 
@@ -159,7 +163,7 @@
159
163
  while (fscanf(fr, "%s\n", stitle) != EOF)
160
164
  {
161
165
  printf("Stitle(検索対象)is %s.\n", stitle);
162
- while (fscanf(gt, "%s\t%s\t%d\t%d\n", title, id, &pb[0], &pb[1]) != EOF)
166
+ while (fscanf(fr2, "%s\t%s\t%d\t%d\n", title, id, &pb[0], &pb[1]) != EOF)
163
167
  {
164
168
  if ((strcmp(stitle, title) == 0))//タイトルが見つかった時.
165
169
  {
@@ -174,7 +178,7 @@
174
178
  }
175
179
 
176
180
  }
177
- printf("%sは見つかりませんでした.\n", stitle);
181
+
178
182
  }
179
183
  printf("process ok!\n\n\n");
180
184
  fclose(fp);
@@ -182,8 +186,6 @@
182
186
  fclose(fr2);
183
187
  fclose(gt);
184
188
  }
185
-
186
-
187
189
 
188
190
  ```
189
191