Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Justin Finch-Fletchley               2:5020/400     31 Jul 2004  12:18:15
 To : Nikolay Pichtin
 Subject : Разделитель
 -------------------------------------------------------------------------------- 
 
 Sat Jul 31 2004 11:01, Nikolay Pichtin wrote to All:
 
  NP>  Делаю так:
  NP> Есть массив
  NP> 1|2|3
  NP> 4|5|6
 
  NP> надо 3 заменить на 7777 (частный случай).
 
  NP> foreach (@mass) {
  NP>   @array = split /\|/;
  NP>   if ($array[0] eq "1") {
  NP>     $array[2] = "7777";
  NP>   }
  NP>   for (my $i=0;$i<$#array+1;$i++) {
  NP>     push (@Row,join("",$array[$i],"|"));
  NP>   }
  NP>   push (@Row,"\n");
  NP> }
 
  NP>   Hа выходе получаю @Row
  NP>   1|2|777|
  NP>   4|5|6|
 
  NP>  Hо дело в том, что мне не надо в конце |
  NP>  Как это побороть?
 
 Hу в общем...
 for (my $i=0; $i<@mass; $i++) {
  $mass[$i]=~s/3/7777/g;
 }
 или
 map {$_=~s/3/7777/g} @mass;
 Hо если хочешь по своему, то... ну в общем нахрен так извращаться:)
 for (my $i=0; $i<@mass; $i++) {
  my @lines=split(/\n/,$mass[$i]);
  for (my $j=0; $j<@lines; $j++) {
   my @fields=split(/\|/,$lines[$j]);
   for (my $i=0; $i<@fields; $i++) {
    $fields[$i]=7777 if $fields[$i]==3;
   }
   $lines[$j]=join('|',@fields);
  }
  $mass[$i]=join("\n",@lines);
 }
 
 в общем тут было бы проще map'ом воспользоваться.. но как выяснилось недавно -
 он тормозней...
 Если надо что бы именно тройки заменились на 7777, то первый вариант..
 если что бы число 3 в ячейке этой "таблицы", то второй... Писалось правда "на
 коленке", но должно работать...
 
 --- ifmail v.2.15dev5.3
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Разделитель   Nikolay Pichtin   31 Jul 2004 11:01:39 
 Re: Разделитель   Dmitry Y. Labutin   31 Jul 2004 11:38:33 
 Разделитель   Justin Finch-Fletchley   31 Jul 2004 12:18:15 
 Разделитель   Michael   01 Aug 2004 00:19:34 
 Разделитель   Ivan Frolkov   01 Aug 2004 01:02:06 
Архивное /ru.perl/166792e879b16.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional