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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> формирование массива 
V
    Опции темы
meridian
Дата 13.9.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



привет всем, нужна помощь

отредактировал месгу, попроще написал

есть массив значений
"[email protected]"
"[email protected]"
"[email protected] [email protected] [email protected]"
"[email protected] [email protected]"

как сделать массив отдельных уникальный адресов,
или  строку, чтобы разделялось мыло значением ";" и были уникальные

пасиба


Это сообщение отредактировал(а) meridian - 13.9.2006, 15:30
PM   Вверх
nitr
Дата 13.9.2006, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



если правильно понял, то можно так

Код

...
my $str;
foreach my $value ( @field_list )
{
    my $tmp_str = E_GetValueField( $prj, $value , $whatret );
    $str .= "$tmp_str; ";
    push( @list_email, lc( $tmp_str ) );
}
...


а вот уникальные, ну можно так
Danissimo, я свой не проверял, но если рабочий код, то всё ок будет smile
и тот кто постил тему... убрал код smile

был таковой
foreach my $value ( @field_list )
{
    my $tmp_str = E_GetValueField( $prj, $value , $whatret );
    push( @list_email, lc( $tmp_str ) );
}

его правим на
Код

my %emails;
foreach ( @field_list )
{
    my $tmp_str = E_GetValueField( $prj, $_ , $whatret );
    $emails{$tmp_str} = 1;
}
my $list = join ";", keys %emails;


работаить smile

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


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


Бывалый
*


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

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



foreach $tmp_str (
    "user1\@mail.ru",
    "user3\@mail.ru",
    "user1\@mail.ru user3\@mail.ru user2\@mail.ru",
    "user3\@mail.ru user2\@mail.ru")
{
    my @x = split / /, lc($tmp_str);
    @list_email{@x} = (1) x @x;
}
print join(';', keys %list_email);

PM MAIL   Вверх
nitr
Дата 13.9.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Danissimo, это ско-ка ресурсов отдаст на твой скрипт smile ?
и ско-ка действий? smile


--------------------
PM   Вверх
Danissimo
Дата 13.9.2006, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



хз. Было бы интересно узнать.

Добавлено @ 16:42 
Да, и попрошу отметить, что его плюсом является то, что он работает, как и просили. =))
PM MAIL   Вверх
meridian
Дата 13.9.2006, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



пасиб всем , даниссимо особо  smile 

но че то не раобтает 

Это сообщение отредактировал(а) meridian - 13.9.2006, 17:02
PM   Вверх
nitr
Дата 13.9.2006, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



и уникальные и всё smile

meridian, 
Код

...
my %emails;
foreach ( @field_list )
{
    my $tmp_str = E_GetValueField( $prj, lc($_) , $whatret );
    $emails{$tmp_str} = 1;
}
my $list = join ";", keys %emails;
...


результат [email protected] [email protected];[email protected];[email protected] [email protected] [email protected];[email protected]

Добавлено @ 17:19 
и уникальны 100%
и выводит, разделяя ";" smile

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


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


Шустрый
*


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

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



так у меня получилось

не уникальны
[email protected] [email protected];[email protected];[email protected] [email protected] [email protected];[email protected]

мне надо 
результат [email protected];[email protected];[email protected];[email protected]; ...

Это сообщение отредактировал(а) meridian - 13.9.2006, 17:22
PM   Вверх
Danissimo
Дата 13.9.2006, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Так посмотри мой код. Вот что он выдает:

[email protected];[email protected];[email protected]

Разве это не то, что требовалось?
PM MAIL   Вверх
nitr
Дата 13.9.2006, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



meridian, теперь хоть ясна цель =)
Код

...
my %emails;
foreach ( @field_list ) {
    my $tmp_str = E_GetValueField( $prj, lc($_) , $whatret );
    foreach (split / /, $tmp_str) {
        $emails{$_} = 1;
    }
}
my $list = join ";", keys %emails;
...

результат [email protected];[email protected];[email protected];[email protected]
при массиве "user1\@mail.ru", "user2\@mail.ru", "user3\@mail.ru", "user1\@mail.ru user3\@mail.ru user4\@mail.ru"

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


--------------------
PM   Вверх
meridian
Дата 13.9.2006, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Во, теперь супер, пасиба, работает как надо  smile 
PM   Вверх
ZeeLax
Дата 14.9.2006, 06:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

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



meridian, отметь плиз тему.


--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
meridian
Дата 14.9.2006, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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


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

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


 




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


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

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