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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Serge Chervjakov                     2:5020/400     11 Sep 2004  19:33:52
 To : Edward Yudanov
 Subject : sort [?]
 -------------------------------------------------------------------------------- 
 
 Sat Sep 11 2004 21:47, Edward Yudanov wrote to All:
 
  EY> 02.12 Ivan Ivanov @ 2:5007/99.1
  EY> 21.09 Peter Petrov @ 2:5007/99.2
  EY> 10.07 Sidor Sidorov @ 2:5007/99.8
  EY> 10.07 Vasya Pupkin @ 2:5007/99.4
  EY> то есть отсортировать сначала по датам, в случае одинаковых дат -- по
  EY> адресам. Подскажите как можно отсортировать файл по такому принципу. У
  EY> меня получается сортировать только по первому числу, но тогда спутаны все
  EY> месяца и по адресам отсортировать не получается :(
 
 Вариантов есть несколько.. первый вариант (неправильный, но когда-то давно
 считал его правильным:) ) - сначала отсортировать по последнему (по адресам),
 потом получившееся - по датам. Hекрасиво.
 А нормальный вариант - почитать про sort. В блоке втором что указывается?
 Фактически - функция сравнения 2 объектов (не важно какой природы - лишь бы
 можно было указать, какой объект "больше" какой "меньше"). Вот исходя из этого
 и построй соответствующий блок (split тебе в нем поможет). Hу а если серьезно,
 то что-нибудь вроде такого:
 
 sub sor
 {
   my ($adate,$aname,$alname,undef,$aaddr)=split(/ /,$a); 
   my ($bdate,$bname,$blname,undef,$baddr)=split(/ /,$b);
   $adate cmp $bdate || $aaddr cmp $baddr;
 }
 sort sor @arr;
 ну можно еще сделать сортировку адресов правильную - соответственно чуть
 придется переписать функцию сравнения...
 
 --- ifmail v.2.15dev5.3
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 sort [?]   Edward Yudanov   11 Sep 2004 21:47:46 
 sort [?]   Serge Chervjakov   11 Sep 2004 19:33:52 
Архивное /ru.perl/16679e9b5a955.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional