質問編集履歴

4

アップデートしました

2022/06/09 14:20

投稿

studyprg
studyprg

スコア57

test CHANGED
@@ -1 +1 @@
1
- イトルバイト読み込みについて。
1
+ Wikipediaのdumpデーから記事取得を目的としたプログラムの作成
test CHANGED
@@ -1,7 +1,7 @@
1
1
  自然言語処理について勉強しています。
2
- Wikipediaのdumpデータからタイトルと本文を抜き出して処理をしようと思ってます。
2
+ Wikipediaのdumpデータからタイトルと本文を抜き出して処理をしようと思ってます。(外部ライブラリ未使用で)
3
- 今は記事からbyte算出するプログラムを作りました。
3
+ 今は記事<page>~</page>間全取得してtxtに書き込むプログラムを作りたいです
4
- ここからは求めた記事の開始地点のbyte(pb[0])から指定バイト(pb[1])だけ読み込んでいく予定でしたが、
4
+ ここからは求めた記事の開始地点のbyte(pb[0])から指定バイト(pb[1])だけ読み込んでいく予定でしたが、
5
5
  ファイルポインタが記事の終着点にあって読み込みがうまくいってません。
6
6
  fprintfが上手いこと動くようにして欲しいです。
7
7
  プログラミングはあまり得意ではないです。

3

一部修正

2022/06/09 11:56

投稿

studyprg
studyprg

スコア57

test CHANGED
File without changes
test CHANGED
@@ -39,7 +39,7 @@
39
39
  fgets(line,pb[1],fp);
40
40
  //fwrite(pb, sizeof(size_t), 2, fw); // ...
41
41
  //fprintf(fw, "%hhd \t %hhd \n", pb[0], pb[1]); //読み込み時の名残
42
- fprintf(fw,"%s \n",line);
42
+ fprintf(fw,"%s \n",line);**//ここが動いてほしい**
43
43
  }
44
44
  }
45
45
 

2

現状に合わせてアップデート

2022/06/09 11:54

投稿

studyprg
studyprg

スコア57

test CHANGED
File without changes
test CHANGED
@@ -3,7 +3,7 @@
3
3
  今は記事からbyte数を算出するプログラムを作りました。
4
4
  ここからは求めた記事の開始地点のbyte(pb[0])から指定バイト(pb[1])だけ読み込んでいく予定でしたが、
5
5
  ファイルポインタが記事の終着点にあって読み込みがうまくいってません。
6
- れを解決する関数を教えて欲しいです。
6
+ fprintfが上手いと動くようにして欲しいです。
7
7
  プログラミングはあまり得意ではないです。
8
8
 
9
9
 
@@ -16,22 +16,35 @@
16
16
  int main (){
17
17
 
18
18
 
19
+ int p;
19
- size_t p, pb[2];
20
+ char pb[5];
20
21
  char line[BUFSIZ];
21
- FILE *fp = fopen("**//うぃきの分割ファイル//**.xml", "r");
22
+ FILE *fp = fopen("jawiki-20211220-pages-articles-multistream1.xml", "r");
23
+ char title[BUFSIZ];
24
+
25
+ //FILE *gt=fopen("list_1.txt","r");
22
- FILE *fw = fopen("get_text_byte.txt", "w");
26
+ FILE *fw = fopen("get_text_c.txt", "w");
23
- fprintf(fw,"startbyte     記事のbyte \n");
27
+
24
- if ((NULL == fp) || (NULL == fw))
25
- abort();
26
28
  while (p = ftell(fp), fgets(line, BUFSIZ, fp)) {
29
+ if ((NULL == fp)||(NULL== fw )){
30
+ abort();
31
+ }
32
+
27
- if (strstr(line, "<page>"))
33
+ else if (strstr(line, "<page>")){
28
- pb[0] = p;
34
+ p=pb[0];
35
+ }
29
- else if (strstr(line, "</page>")) {
36
+ else if (strstr(line, "</page>")){
30
- pb[1] = p - pb[0];
37
+ pb[1] = p - pb[0];
38
+ fseek(fp,-pb[1],SEEK_CUR);
39
+ fgets(line,pb[1],fp);
40
+ //fwrite(pb, sizeof(size_t), 2, fw); // ...
31
- fprintf(fw,"%zu      %zu \n",pb[0],pb[1]); // ...
41
+ //fprintf(fw, "%hhd \t %hhd \n", pb[0], pb[1]); //読み込み時の名残
32
-
42
+ fprintf(fw,"%s \n",line);
33
- }
43
+ }
44
+ }
45
+
34
46
  fclose(fw);
35
47
  fclose(fp);
36
48
  }
49
+
37
50
  ```

1

ファイル名修正

2022/06/09 09:03

投稿

studyprg
studyprg

スコア57

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- ```get_wiki1_byte.c
11
+ ```get_wiki2_All.c
12
12
  #include <stdio.h>
13
13
  #include <stdlib.h>
14
14
  #include <string.h>