Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с выделением подстроки, Не могу вычленить первые -n символов 
:(
    Опции темы
shamber
Дата 13.12.2006, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



Есть корявые данные.
сервер такими кидается smile

Код

пѕ­Ю\x0B\x00\x01\x00\x00\x00\x00\x00\x02\x10\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`\x078\x08tіЯїИmЯї\x1E\x00\x00\x00


из этого пакета очень хочется выделить первые, ну например 5 символов и стереть их.

предпологал сделать это вот так.

Код

$packet[0] =~ s/(.{5})//;


В $packet[0] соответственно находятся данные.
а в $1 я планировал получить, то что надо. но блин.... нифига там нет.
как быть?
С уважением Shamber
PM MAIL Jabber   Вверх
nitr
Дата 14.12.2006, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



или уточни... или что?
Код

#!perl
my $str = "пѕ­Ю\x0B\x00\x01\x00\x00\x00\x00\x00\x02\x10\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`\x078\x08tіЯїИmЯї\x1E\x00\x00\x00";
print length($str)."\n";

$str =~ s/^.{5}//;
print length($str)."\n";

Цитата

c:\>1.pl
48
43



--------------------
PM   Вверх
shamber
Дата 14.12.2006, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



щас проверю твой вариант и попробую уточнить.

Все точно.... проблема была, в том, что я забывал ^ добавлять

вообщем 
Код

s/(^.{5})//





Это сообщение отредактировал(а) shamber - 14.12.2006, 17:43
PM MAIL Jabber   Вверх
shamber
Дата 14.12.2006, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



БЛИН!!!!! все оказалось не так просто как казалось.....
ситуация в следующем.
та строка, чтоя Вам показывал есть упакованные данные.
и вот конкретно с ними не работает. smile(((

Код

#perl
use constant VERSION_MAJOR => 1;
use constant VERSION_MINOR => 10;
use constant VERSION => ((VERSION_MAJOR<<16)|(VERSION_MINOR));
use constant CS_MAGIC => 0xDEADBEEF;

my $str = pack("L7C16",CS_MAGIC,VERSION,1,4111,0,0,0,"0"x16);
print length($str)."\n";

$str =~ s/^.{5}//;
print length($str)."\n";


на выходе
Код

44
44



А вот если поменять VERSION на любое число например 1. то все прекрасно работает....
блин. как быть?
PM MAIL Jabber   Вверх
nitr
Дата 15.12.2006, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



ну функциями попробуй substr($str, 5)
Код

#!perl -w
use constant VERSION_MAJOR => 1;
use constant VERSION_MINOR => 10;
use constant VERSION => ((VERSION_MAJOR<<16)|(VERSION_MINOR));
use constant CS_MAGIC => 0xDEADBEEF;

my $str = pack("L7C16",CS_MAGIC,VERSION,1,4111,0,0,0,"0"x16);
print length($str)."\n";

$str = substr($str, 5);
print length($str)."\n";

что-то такое smile
Цитата

D:\>1.pl
44
39


Это сообщение отредактировал(а) nitr - 15.12.2006, 13:17


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0753 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.