CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  CGI

Perl如何在文件中二进制查找连续代码?

楼主PowerHorse(行空)2002-12-03 23:23:49 在 Web 开发 / CGI 提问

使用Perl在一个文件中查找一串二进制的字符(其中可能有0),如何处理?(要测试好的源代码) 问题点数:100、回复次数:1Top

1 楼AllCHN(大中国)回复于 2002-12-04 13:40:18 得分 100

刚好有一个类似程序,可做参考:  
  sub   Search   {  
  #   参数:   文件路径,   查找数据  
  #   如:   myprg.exe,   0x45,   0x10,   0x84,   0,   0x55,   ...  
  my   $buff;  
  my   $bytes_read;  
  my   @find   =   @_;  
  my   $filename   =   shift(@find);  
  my   @readc;  
  my   $alen   =   @find;  
  my   $i;  
  my   $j;  
  my   $thisc;  
  my   $found;  
  my   $poscount;  
  return   -1   if   (!(-e   $filename)); #   文件不存在  
  return   -2   if   (!open(FH,   "+<$filename")); #   文件打开错误  
  binmode   FH;  
  $bytes_read   =   read(FH,   $buff,   $alen   -   1);  
  return   -3   if   ($bytes_read   !=   $alen   -   1); #   文件长度不足  
  @readc   =   split("",   $buff);  
  foreach   (@readc)   {  
  $_   =   ord($_);  
  }  
  unshift(@readc,   0);  
  $postcount   =   -1;  
  while   ($bytes_read   =   read(FH,   $buff,   1024))   {  
  for   ($i   =   0;   $i   <   $bytes_read;   $i++)   {  
  $thisc   =   ord(substr($buff,   $i,   1));  
  push(@readc,   $thisc);  
  shift(@readc);  
  $poscount++;  
  $found   =   1;  
  foreach   ($j   =   0;   $j   <   $alen;   $j++)   {  
  if   ($found   !=   0)   {  
  if   ($find[$j]   !=   $readc[$j])   {  
  $found   =   0;  
  }  
  }  
  last   if   ($found   ==   0);  
  }  
  last   if   ($found   !=   0);  
  }  
  last   if   ($found   !=   0);  
  }  
  if   ($found   !=   0)   {  
  #   $poscount   为查找到的位置(从   1   开始计数)  
  close(FH);  
  return   $poscount;  
  }   else   {  
  close(FH);  
  return   -4; #   没有找到  
  }  
  }  
  Top

相关问题

  • 谁有这样的源代码???(在二进制文件中查找$DDEEFF)
  • 没有人懂二进制代码?
  • 关于文件二进制查找问题!
  • 高分求Hibernate保存二进制数据(图片),二进制字符大对象的代码.
  • 请问什么叫源代码分发或二进制分发
  • C++在二进制代码上如何兼容?
  • 新手求十进制转换二进制的代码。
  • 在access中如何加入一段二进制的代码啊?
  • 请问如何在一个二进制文件中查找一个字符串?
  • 如何在二进制文件中查找某一个Ansi的字符?

关键词

  • 二进制
  • 文件
  • perl
  • 查找
  • find
  • filename

得分解答快速导航

  • 帖主:PowerHorse
  • AllCHN

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo