質問編集履歴

2

現在のソースと出力を記入しておきます.

2022/06/17 05:59

投稿

studyprg
studyprg

スコア57

test CHANGED
File without changes
test CHANGED
@@ -88,4 +88,65 @@
88
88
  </page>
89
89
 
90
90
  ```
91
+ 追記:現在のソースを追記しておきます.
92
+ ```Wiki_parser1_Byte.c
93
+ #include <stdio.h>
94
+ #include <stdlib.h>
95
+ #include <string.h>
96
+ #define SIZE 256 * 1024 * 1024
91
97
 
98
+ int main()
99
+ {
100
+
101
+ size_t p, pb[2];
102
+ char *line = malloc(SIZE);
103
+ FILE *fp = fopen("jawiki-20211220-pages-articles-multistream2.xml", "r");
104
+ FILE *fw = fopen("get_text_byte.txt", "w");
105
+ // printf(fw,"startbyte\t記事のbyte \n");
106
+ if ((NULL == fp) || (NULL == fw))
107
+ abort();
108
+ while (p = ftell(fp), fgets(line, SIZE, fp))
109
+ {
110
+ if (strstr(line, "<page>"))
111
+ {
112
+ pb[0] = p;
113
+
114
+ if (strstr(line, "</page>"))
115
+ {
116
+ pb[1] = p - pb[0];
117
+
118
+ // fprintf(fw, "%zu\t%zu\n", pb[0], pb[1]); // ...
119
+ // fprintf(fw, "%d\t%d\n", pb[0], pb[1]); ... テキスト形式で観察可能
120
+ }
121
+ printf("%zu\t%zu\n", pb[0], pb[1]);
122
+ }
123
+ }
124
+ printf("process ok");
125
+ free(line);
126
+ fclose(fw);
127
+ fclose(fp);
128
+ }
129
+ ```
130
+ 現在の出力も載せておきます.
131
+ ```ここに言語を入力
132
+ 1536124776 0
133
+ 1536146103 0
134
+ 1536146845 0
135
+ 1536147939 0
136
+ 1536153955 0
137
+ 1536159921 0
138
+ 1536174339 0
139
+ 1536177008 0
140
+ 1536181947 0
141
+ 1536187730 0
142
+ 1536188261 0
143
+ 1536205531 0
144
+ 1536286862 0
145
+ 1536292238 0
146
+ 1536295216 0
147
+ 1536302579 0
148
+ 1536318555 0
149
+ process ok
150
+ ```
151
+ 処理自体は動いていますがバイト数が常に0です.
152
+

1

一部修正

2022/06/16 07:50

投稿

studyprg
studyprg

スコア57

test CHANGED
File without changes
test CHANGED
@@ -23,7 +23,7 @@
23
23
  char line[BUFSIZ];
24
24
  char title[BUFSIZ];
25
25
  char idnum[BUFSIZ];
26
- char startw[] = "<text>";//ここと一つ下ををtitleやidに変えて実行したい
26
+ char startw[] = "<text";//ここと一つ下ををtitleやidに変えて実行したい
27
27
  char endw[] = "</text>";
28
28
  char nextw[] = "</page>";
29
29
  char *readfilename = "jawiki-20211220-pages-articles-multistream2.xml"; //読み込むファイル
@@ -33,6 +33,9 @@
33
33
  FILE *fw = fopen(writefilename, "w");
34
34
  if ((NULL == fp) || (NULL == fw))
35
35
  abort();
36
+ else{
37
+ printf("ファイル開きます");
38
+ }
36
39
  while (p = ftell(fp), fgets(line, BUFSIZ, fp))
37
40
  {
38
41
 
@@ -53,7 +56,7 @@
53
56
 
54
57
 
55
58
  ```
56
-
59
+ 実行時はファイル読み込みは出ているようです.
57
60
  欲しい部分の理解用にwikiのxmlファイルの一例を示します.
58
61
  ```
59
62