Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Perl


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Perl

Выпуск № 47
от 31.05.2006, 16:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 139, Экспертов: 13
В номере:Вопросов: 1, Ответов: 1


Вопрос № 44309: Нужно прочитать файл и определить количество определенных байтов. Я делаю так: my $data; open FILEFIND, $_[0]; binmode FILEFIND; seek(FILEFIND, 0, 2); my $count = tell(FILEFIND); seek(FILEFIND, 0, 0); read(FILEFIN...

Вопрос № 44.309
Нужно прочитать файл и определить количество определенных байтов.
Я делаю так:

my $data;
open FILEFIND, $_[0];
binmode FILEFIND;
seek(FILEFIND, 0, 2);
my $count = tell(FILEFIND);
seek(FILEFIND, 0, 0);
read(FILEFIND, $data, $count);
close FILEFIND;

my $total = 0;

for (my $i = 0; $i < $count; $i += 2) {
if ($data[$i] == <байт> && $data[$i] == <байт>) {
$total++;
}
}

Не работает, естественно, т.е не работает цикл для проверки, сами данные нормально размещаются в $data. Как строку парсить по байтам? Можно ли это сделать через рег. выражение? По сути нужно сосчитать количество байт, а точнее количество пар байт, удовлетворяющих моим условиям.
Отправлен: 26.05.2006, 16:06
Вопрос задал: Red Devil (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: -OC-
Здравствуйте, RedDevil!
насколько я понял вам нужно найти в двоичном вайле колличество последовательностей байтов <байт1><байт2>. Если так, то попробуйте заменить ваш цикл на такую конструкцию:

Приложение:

Ответ отправил: -OC- (статус: 7-ой класс)
Ответ отправлен: 26.05.2006, 20:53
Оценка за ответ: 5
Комментарий оценки:
Догадывался, что это должно быть похоже на такой код. Спасибо.


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.33 от 25.05.2006
Яндекс Rambler's Top100

В избранное