The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Никак не могу врубиться, как из одного массива изъять содерж..."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Никак не могу врубиться, как из одного массива изъять содерж..."
Сообщение от zlinuxan emailИскать по авторуВ закладки on 20-Фев-03, 07:05  (MSK)
Ну тоесть есть два массива разной длинны. Хочется, чтобы они перебирались и на экран бы выводились их различия. По алгоритму это видится так:
для каждого элемента 1-го массива - если такого нет во втором массиве, то пусть он выводится на экран.
Блин, никак не могу понять, как такое написать.
Хочу это сделать средствами Perl , так как с diff  возиться не хочется - очень большие массивы.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Никак не могу врубиться, как из одного массива изъять со..."
Сообщение от RUSLAN Искать по авторуВ закладки on 20-Фев-03, 12:47  (MSK)
for($i=0;$i<=@array1;$i++)
{
  $f_loop=0;
  for($k=0;$k<=@array2;$k++)
     {
   if($array1[$i]=~/$array2[$k]/) # mogno eshe tak ^$array2[$k]$
       {

$f_loop++;      
        }  
      }
     if($f_loop==0)
        {

       print "$array1[$i] \n"; # ya neponyal massiv dolgen   # vivoditsya ili element massiva ?
           }

  }

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Никак не могу врубиться, как из одного массива изъять со..."
Сообщение от konst emailИскать по авторуВ закладки on 20-Фев-03, 13:32  (MSK)
Для таких целей пользуют Хеши.
Вариант

$f1 = $ARGV[0]; # Файл1 (если считка из файла)
$f2 = $ARGV[1]; # Файл2 (если считка из файла)
open (F1,"$f1") || die "$!\n";
open (F2,"$f2") || die "$!\n";
while(<F1>) { chomp;$h1{$_} = 1; }
while(<F2>) { chomp;$h2{$_} = 1; }
close(F1); close(F2);    

foreach $a (keys %h1) {
    unless ($h2{$a}) { print "H1(yes),H2(no):$a\n"; }
}
foreach $a (keys %h2) {
    unless ($h1{$a}) { print "H2(yes),H1(no):$a\n"; }
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Никак не могу врубиться, как из одного массива изъять со..."
Сообщение от zlinuxan emailИскать по авторуВ закладки on 20-Фев-03, 16:46  (MSK)
>Для таких целей пользуют Хеши.
>Вариант
Спасибо огромное :))
Вариант работает :))
>
>$f1 = $ARGV[0]; # Файл1 (если считка из файла)
>$f2 = $ARGV[1]; # Файл2 (если считка из файла)
>open (F1,"$f1") || die "$!\n";
>open (F2,"$f2") || die "$!\n";
>while(<F1>) { chomp;$h1{$_} = 1; }
>while(<F2>) { chomp;$h2{$_} = 1; }
>close(F1); close(F2);
>
>foreach $a (keys %h1) {
>    unless ($h2{$a}) { print "H1(yes),H2(no):$a\n"; }
>}
>foreach $a (keys %h2) {
>    unless ($h1{$a}) { print "H2(yes),H1(no):$a\n"; }
>}


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру