Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : alexander lunyov                     2:5020/400     29 Feb 2008  20:37:45
 To : All
 Subject : как собрать байты в число?
 -------------------------------------------------------------------------------- 
 
 приветствую всех.
 
 есть бинарный файл с записями разной длины. хотел написать функцию, 
 которая бы брала из файла столько байт сколько мне надо и конвертила их 
 в число. до этого perl'ом бинарные файлы не разбирал и вот встрял. читал 
 доки, рецепты.... нет, не понимаю. снимите с ручника.
 
 sub readfile
 {
      my $number = "";
      my $buffer = "";
      my $handle = shift;
      my $len_to_read = shift;
 
      sysread $handle,$buffer,$len_to_read;
 
      foreach (split(//,$buffer))
      {
          printf("%02x ", ord($_));
      }
      my @aa = unpack("C" x $len_to_read,$buffer);
      print " = ";
      foreach $i (@aa) { print $i," ";}
      print "\n";
 }
 
 сама программа:
 
 open (FILE,$filename) or die "can't open file $filename\n";
 binmode FILE;
 
 &readfile(FILE,1);
 &readfile(FILE,2);
 &readfile(FILE,4);
 
 получаю такую картину:
 
 c8  = 200
 00 4e  = 0 78
 03 cb 9c 2f  = 3 203 156 47
 
 то есть каждый байт превращается в число. а как сделать чтобы все байты 
 из одной партии стали числом? то есть чтобы 03 cb 9c 2f стало числом 
 63675439? можно их по-тупому перемножить последовательно, но я чувствую 
 что можно всё сделать намного элегантнее. но не знаю как :(
 
 -- 
 your sweet isn't ready yet
 --- ifmail v.2.15dev5.4
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 как собрать байты в число?   alexander lunyov   29 Feb 2008 20:37:45 
 Re: как собрать байты в число?   Artem Chuprina   02 Mar 2008 14:44:35 
 Re: как собрать байты в число?   alexander lunyov   12 Mar 2008 13:10:02 
 как собрать байты в число?   Dmitry E. Oboukhov   12 Mar 2008 13:56:17 
 Re: как собрать байты в число?   alexander lunyov   12 Mar 2008 15:47:24 
 как собрать байты в число?   Dmitry E. Oboukhov   12 Mar 2008 17:08:30 
Архивное /ru.perl/2573379ced2f7.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional