求教高手,关于海量数据文本的读取筛选问题!
有一个超大型文本,例如有100万行,每行内容多少不等,其中不时有如下有规律内容出现
RLB 04 : 08 02 8F 19 43 C0 01 2B 2B 2B 2B 2B 2B 2B 2B 2B
2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B
2B 2B B2 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B
2B 2B 2B 2B 2B 7F
RMB 04 : 00 02 6E 19 43 C0 01 2B 2B 2B 2B 2B 2B 2B 2B 2B
2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B
2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B
2B 2B 2B 2B 2B 7F
RCB 04 : 08 01 6E 19 43 C0 01 2B 2B 2B 2B 2B 2B 2B 2B 2B
2C 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B
2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B
2B 2B 2B 2B 2B 7F
RGB 04 : 08 02 51 19 43 C0 01 2B 2B 2B 2B 2B 2B 2B 2B 2B
2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B
2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B
2B 2B 2B 2B 2B 7F
RMB 04 : 08 05 96 19 43 C0 01 2B 2B 2B 2B 2B 2B 2B 2B 2B
2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B
2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B
2B 2B 2B 2B 2B 7F
.....................................................
从中读取 标签是RMB 04 :及后面跟着的数据,(数据内容均不一样)然后输入到一个文本中,怎么样实现?还请各位高手给个思路,关键是文件内容超多,不好用数组!
[解决办法]
"RMB 04.... " 如果是一行的话
这样可以:
while(fgets(buf,MAX,fp) != NULL) //取一行,MAX自己设:1024应该够吧
{
if(strstr(buf, "RMB 04 ") != NULL)
{
//store buf here;
fputs(buf,rmbfp);
}
}
[解决办法]
hailongchang(什么时候才能看到星星啊。。。)俺没有那本书,方便地话 给我发一份吧!
superboy888pq@163.com 谢过,先!
--------------------------------
我给你传吧,QQ:535260440
[解决办法]
内存映射 将整个大文本映射掉
然后每次读一定大的内存。
然后进行分析。
[解决办法]
linux 命令里有个grep,和你提到的功能类似,你可以参考一下它的源码ftp://ftp.gnu.org/gnu/grep/