![]() |
Модераторы: ginnie, korob2001 |
![]() ![]() ![]() |
|
Aleksandor |
|
|||
![]() Практик ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 22.11.2005 Где: россия, зеленогра д Репутация: нет Всего: 12 |
Уважаемые знатоки! У меня такие вопросы
1. что означает такая конструкция в переводе на русский- my (@buf, $buff) (это не по теме, просто интересно) Дальше собственно сабж... 2. как выделить первые 4 байта в виде отдельной переменной из последовательности длиной 36 байт? и 3. - вопрос в коде (как заменить первые 4 байта в переменной $buff длиной 36 байт)
Вопрос 4 - имеются 9 двоичных переменных, каждая длиной 4 байта. как их упаковать для записи в массив в виде непрерывной последовательности из 36 байт? my $bin_a=pack("H8",$params[0]); my $bin_m1=pack("H8",$params[2]); my $bin_m2=pack("H8",$params[3]); my $bin_m3=pack("H8",$params[4]); my $bin_m4=pack("H8",$params[5]); my $bin_m5=pack("H8",$params[6]); my $bin_m6=pack("H8",$params[7]); my $bin_m7=pack("H8",$params[8]); my $bin_m8=pack("H8",$params[9]); # как все эти переменные упаковать в $buff ??? push(@buf, $buff); # записываем в массив ![]() |
|||
|
||||
Aleksandor |
|
||||
![]() Практик ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 22.11.2005 Где: россия, зеленогра д Репутация: нет Всего: 12 |
Кажется немного разобрался сам
![]() для упаковки строковых переменных такая конструкция-
Для распаковки двоичной последовательности
Добавление нового значения в конец массива push(@buf, @longwords); Сохранение в файле print FH for @buf; Прошу прояснить если в чем не прав и что здесь можно оптимизировать для повышения быстродействия. ![]() -------------------- Call out Gouranga be happy!!! Gouranga Gouranga Gouranga .... That which brings the highest happiness!! |
||||
|
|||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 3 Всего: 28 |
Aleksandor например, использовать не массив, а ссылку на массив.
-------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
Aleksandor |
|
|||
![]() Практик ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 22.11.2005 Где: россия, зеленогра д Репутация: нет Всего: 12 |
Sharq, а где конкретно? И что это дает? А в остальном (push (@buf,@filelongwords);=- массив в массив ![]() Хочется чтоб было красиво, но Perl толком не знаю ![]() А как понять еще вот такое выражение my (@buf, $buff) ??? -------------------- Call out Gouranga be happy!!! Gouranga Gouranga Gouranga .... That which brings the highest happiness!! |
|||
|
||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 6 Всего: 61 |
Посмотри эту тему, там несколько рабочих примеров работы с бинарными файлами. Так же есть коментарии.
http://forum.vingrad.ru/index.php?showtopic=71224 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
Aleksandor |
|
|||
![]() Практик ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 22.11.2005 Где: россия, зеленогра д Репутация: нет Всего: 12 |
А так это я и был
![]() Сейчас решил к единственной переменной длиной 4 байт добавить еще ключ длиной 32 байта. Таким образом эти 36 байт составляют одну "запись" или "строку" в файле. Не уверен что можно иметь массив с переменными разной размерности, поэтому разбиваю эти 36 байт на 9 переменных одинакового типа. Первая переменная используется для сравнения (поиска) в массиве и иногда для подстановки. К сожалению не нашел способа выделить двоичные данные не преобразуя их в строковые значения ![]() -------------------- Call out Gouranga be happy!!! Gouranga Gouranga Gouranga .... That which brings the highest happiness!! |
|||
|
||||
korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 6 Всего: 61 |
Это равносильно следующему.
В обоих случаях объявляются массив @buf и скаляр $buff. Ну вот собственно и всё. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
sharq |
|
||||||||||||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 3 Всего: 28 |
Продолжаю эквивалентность
Aleksandor 1. Если весь массив @params, то
Если, только 9 первых элементов, то
2.
ВОт посмотри, потестируй, поэкспериментируй. Только не забывай про
Они научат тебя писать скрипты на perl правильно. ![]() Почитай книги по perl, здесь уже ни раз обсуждалось какие и где взять. ![]() Это сообщение отредактировал(а) sharq - 10.12.2005, 12:46 -------------------- [color=gray]There's More Than One Way To Do It[/color] |
||||||||||||
|
|||||||||||||
![]() ![]() ![]() |
Правила форума "Perl: Системное программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |