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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фунцкция с регул. выраж. не получается передать пересенную 
:(
    Опции темы
les
Дата 4.5.2008, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 24.4.2006

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



Здравствуйте.
Попал в сутуацию  для меня тупиковую. Вот гляньте плиз.
Код

#!/usr/bin/perl -w

use XML::RSS;

sub get_news
{
    my $title = $_[0];
    my $file_name  = $_[1];
    open (FILE,'<',$file_name);
    my $text_news;
    while (<FILE>)
             {
                 $text_news.=$_;
             }
    close FILE;
      if ($text_news =~ m/($title)/sm)
        {
        return $1."\n";
        }
        else {return "ненайдено\n";}
}

my $rss = new XML::RSS (version => '2.0',encoding=>'Windows-1251');
$rss->parsefile('lenta2.rss');
$y = "Привет дядя Паше";
my $x = ($rss->{'items'}[0]->{'title'});
print "X = $x\n";
if ($x eq "Привет дядя Паше") {print "ok1\n";} else {print "косяк \n";}
print get_news ($x,'Readme.txt'); #содержание файла  "я сказал Привет дядя Паше, и все услышали"
print get_news ("Привет дядя Паше",'Readme.txt');
print get_news ($y,'Readme.txt');

open IN,'<R.txt';  #содержание файла "Привет дядя Паше"
$z = <IN>;
if ($z eq "Привет дядя Паше") {print "okey\n";}
print get_news ($z,'Readme.txt');


и выдает

Код

X = Привет дядя Паше
косяк 
ненайдено
Привет дядя Паше
Привет дядя Паше
okey
Привет дядя Паше


уже не знаю... хоть на потолок лезь....Уже просто сижу туплю...Почему $x нормально не интерпритируется?


Это сообщение отредактировал(а) les - 5.5.2008, 00:11
PM MAIL   Вверх
les
Дата 5.5.2008, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 24.4.2006

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



Почемк выползает так - разобрался... $x в utf8
но при
Код

$x=Encode::encode('cp1251', Encode::decode('utf8', $x));

выдает 
Код

Cannot decode string with wide characters at C:/Perl/lib/Encode.pm line 162.


Хотя если взять.. и сохранить $x и потом прочесть из файоа то все по волшебству кодируется...
Помогите плиз, у меня вся инфа в таком формате парситься из rss.....
PM MAIL   Вверх
les
Дата 5.5.2008, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 24.4.2006

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



Я что совсем заблудиося....
использую модуль XML::RSS для парсинга. Как я понял ,все данные исходящие "из" него в utf8, работаю по виндами.... 
Подскажите, мож этот модуль некорректоно работает с UTF8.

Код

"Милан" помешал "Интеру" досрочно стать чемпионом Италии
Спорт
http://lenta.ru/news/2008/05/04/soccer/
Миланский "Интер" упустил шанс досрочно выиграть чемпионат Италии по футболу, уступив в матче 36-го тура "Милану" (1:2). За два тура до конца первенства отрыв "Интера" от идущей на втором месте "Ромы" сократился до трех очков, но миланский клуб сохраняет хорошие шансы на то, чтобы защитить титул чемпиона Италии.
Миланский "Интер" ÑƒÐ¿ÑƒÑÑ‚ил шанс досрочно выиграть чемпионат Италии по футболу, уступив в матче 36-го тура "Милану" (1:2). За два тура до конца первенства отрыв "Интера" Ð¾Ñ‚ идущей на втором месте "Ромы" ÑÐ¾ÐºÑ€Ð°Ñ‚ился до трех очков, но миланский клуб сохраняет хорошие шансы на то, чтобы защитить титул чемпиона Италии.  Ð’ матче с "Интером" "Милан" Ð²Ð»Ð°Ð´ÐµÐ» заметным преимуществом на протяжении большей части встречи, и в начале второго тайма номинальные хозяева поля забÐчемпионов.
Sun, 04 May 2008 18:54:40 +0400


вот такое получается - все что читабельно, это сохранение прямо из парсера в хеш и потом в файл, крякозабры - ручками выдернуты с сайтика из под 1251 и перекодированые перед сохранением в utf8

Это сообщение отредактировал(а) les - 5.5.2008, 02:05
PM MAIL   Вверх
Bulat
Дата 5.5.2008, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Цитата(les @  5.5.2008,  01:51 Найти цитируемый пост)
ручками выдернуты с сайтика из под 1251 и перекодированые перед сохранением в utf8

Как и с помощью чего выдераешь, перекодируешь??


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
les
Дата 5.5.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 24.4.2006

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



видираю регэкспами и перекодирую Encode::encode('utf8', Encode::decode('cp1251', $_))
PM MAIL   Вверх
Bulat
Дата 5.5.2008, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Цитата(les @  5.5.2008,  13:43 Найти цитируемый пост)
Encode::encode('utf8', Encode::decode('cp1251', $_)) 

Хм, таким образом никогда не перекодировал

вообще помогало более простое
Код

use Encode qw(from_to);
...
from_to($str, $src, $dst);


в твоем случае $src = 'cp1251', а $dst = 'utf8' smile


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
les
Дата 5.5.2008, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 24.4.2006

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



Было решено "послать" этот парсер... его универсальность это конечно очень хоршо, но под конкретный пример его слишком "много", регулярными получилось в РАЗЫ быстрее и понятнее.
PM MAIL   Вверх
tolkien
Дата 6.5.2008, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 5.4.2008

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



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


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

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


 




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


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

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