質問編集履歴
2
現在のソースと出力を記入しておきます.
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
一部修正
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
|
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
|
|