| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 407 人关注过本帖
标题:怎么查找到二进制文件中的一个“非0”的字节
收藏  订阅  推荐  打印 
yuhiyu
Rank: 1
等级:新手上路
帖子:10
积分:214
注册:2006-11-23
怎么查找到二进制文件中的一个“非0”的字节

怎么实现,在HEX编辑器查找中,得到一个字节,该字节的值非0。
"if curren_byte=0 then next_byte"
一个一个字节比对,效率太低了,100M的文件,如果所有字节都是0,最后一个字节非0,那么要循环100000000次。
有没更好的方法?
搜索更多相关主题的帖子: 二进制  非0  字节  文件  
2008-1-2 21:17
multiple1902
Rank: 12Rank: 12Rank: 12
等级:版主
威望:40
帖子:4479
积分:45682
注册:2007-2-9

学过排序没?

既然你数据没有排序,自然要循环100000000次,不然怎么找到那个非0字节?

“高考”这个词在耳边不断萦绕,心中的激动不言而喻。写下一句话,一起努力。Let's struggle together.
2008-1-2 22:10
yuhiyu
Rank: 1
等级:新手上路
帖子:10
积分:214
注册:2006-11-23

逐个比对是必须的。我没说清楚,我指的是那种方法执行效率低。

Dim a$, b$, i%
a = String(10000000, 0)
b = String(10000000, 0)
For i = 1 To 10
    If a = b Then Debug.Print i
Next

比如这样的操作就能瞬间比对完100000000个字节,它用汇编当然快
我是说,有没直接的命令或者API来完成查找任务。
2008-1-2 23:14
yuhiyu
Rank: 1
等级:新手上路
帖子:10
积分:214
注册:2006-11-23

好了,基本解决了
2008-1-2 23:24
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.070593 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved