CGI-BBS > £Ã£Ç£É > Perl > ÇÛÎó¤Î¥½¡¼¥È¤¬¤¦¤Þ¤¯¤¤¤­¤Þ¤»¤ó


¥«¥ì¥Ã¥Â
¥«¥ì¥Ã¥Â


¼ÁÌä¼Ô tom  Åê¹ÆÆü 3/14(ÌÚ) 01:02:55
Ê£¿ô¤Î¹Ô¤«¤é¤Ê¤ëÇÛÎó¤òÆÃÄê¤Î¥­¡¼¤Ç¥½¡¼¥È¤·¤¿¤¤¤Î¤Ç¤¹¤¬¤¦¤Þ¤¯¤¤¤­¤Þ¤»¤ó¡£
Îã¤È¤·¤Æ²¼¤Î hairetu.dat ¤Î[0]Îó¤Î[2]¡¢½çÈ֤Ǥ¤¤¨¤Ð3ÈÖÌܤΤ¨¡¦¤¤¡¦¤¦¡¦¤¢¡¦¤ª
¤Ç¥½¡¼¥È¤·¤¿¤¤¤Î¤Ç¤¹¤¬¤¦¤Þ¤¯¤¤¤­¤Þ¤»¤ó¡£

£²¤Ä¤ÎÊýË¡¤Ç»î¤ß¤Æ¤ß¤Þ¤·¤¿¡£
­¡ÇÛÎó¤ÎÆþ¤ìÂؤ¨¤Ç»È¤¦ @line[0,2] = @line[2,0] ¤òÍøÍѤ·¤Æ

    foreach $line (@LIST){
      $line[0,2] = $line[2,0];
      push(@NEW_LIST,$line);
    }
    @NEW_LIST = sort ({ $a cmp $b }@NEW_LIST)

¤¦¤Þ¤¯¤æ¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£

­¢¼¡¤Ë¤é¤¯¤ÀËܤǤߤĤ±¤¿¡ÖÇÛÎó¤ò²Ã¹©¤·¤¿¥­¡¼¤Ç¥½¡¼¥È¤¹¤ë¡×
¡¡¤òÍøÍѤ·¤Æ¥¹¥¯¥ê¥×¥È¤ò½ñ¤­¤Þ¤·¤¿¤¬¤¦¤Þ¤¯¤¤¤­¤Þ¤»¤ó¡£

¤ß¤Ê¤µ¤ó¤ÏÊ£¹ÔÇÛÎó¤Î¥½¡¼¥È¤Ï¤É¤¦¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¤«
¤ª¶µ¤¨¤¤¤¿¤À¤±¤Þ¤»¤ó¤Ç¤·¤ç¤¦¤«¡£¤É¤Ä¤Ü¤Ë¤Ï¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£


########## hairetu.dat ##########

bbbb,1,¤¨,C,
aa,5,¤¤,B,
ccccc,3,¤¦,A,
ddd,2,¤¢,E,
e,9,¤ª,D,


###############################################################################
#!/usr/local/bin/perl

    if(open(IN,"./hairetu.dat")){ @LIST = <IN>; close(IN); }

    print "Content-type: text/html\n\n";
    print "<html><head>\n";
    print "<title></title>\n";
    print "</head><body>\n";

    ####################

    print "<br><br><br><center><table border=2 cellpadding=5>\n";
    print "<tr bgcolor=#000000><th colspan=4><font color=#ffffff>¥Ç¡¼¥¿¤Î¥½\¡¼¥È</font></th></tr>\n";
    print "<tr><td>±Ñ¾®</td><td>¿ô»ú</td><td>´Á»ú</td><td>±ÑÂç</td></tr>\n";

    ########## sort ##########

    local(@data);
    foreach (@LIST){
      push(@data,(split(/\,/))[2]);
    }
    sub hikaku {
      $data{$a} cmp $data{$b};
    }
    @NEW_LIST = @LIST [ sort hikaku $[..$#LIST];

    ##########

    foreach $line (@NEW_LIST){
      ($a_no,$b_no,$c_no,$d_no,) = split(/\,/,$line);
    print "<tr><td>$a_no</td><td>$b_no</td><td>$c_no</td><td>$d_no</td></tr>\n";
    }
    print "</table></center>\n";
    print "</body></html>\n";
    exit;

###############################################################################
1;
²óÅú¼Ô º£Ì뤬¤ä¤¹¤À  [ºï½ü]  Åê¹ÆÆü 3/14(ÌÚ) 06:48:29
¤¦¤Þ¤¯2¼¡¸µÇÛÎó¤òºî¤Ã¤Æ¤ä¤ë¤Èʬ¤ê¤ä¤¹¤¯¤Ê¤ë¤È»×¤¤¤Þ¤¹¡£
¤ï¤¿¤·¤Ê¤é¥ê¥Õ¥¡¥ì¥ó¥¹¤È2¼¡¸µÇÛÎó¤Ç¡¢

@NEW_LIST = map{join',',@$_}sort{$a->[2] cmp $b->[2]}map{[split',']}@LIST;

¤È°ì¹Ô¤Çsort¤µ¤»¤Þ¤¹¡£
²óÅú¼Ô ¤·¤¢¤ï¤»¤Î¥Ä¥Ü  [ºï½ü]  Åê¹ÆÆü 3/16(ÅÚ) 16:25:12
¤Á¤ã¤ó¤Èsort´Ø¿ô¤¬»È¤¨¤Þ¤¹¤è¡£
http://www.rescue.ne.jp/CGI-BBS/database/database/20010910002311.shtml
²óÅú¼Ô ¤Þ¤µ  [ºï½ü]  Åê¹ÆÆü 3/16(ÅÚ) 20:26:28
º£Ì뤬¤ä¤¹¤À¤µ¤ó¤ÎÊýË¡¤ÏSchwartzian Transform¤È¸Æ¤Ð¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤¹¤Í¡£

³Î¤«¤Ë¤½¤ì¤¬°ìÈÖ´Êñ¤ÊÊýË¡¤À¤È»×¤¤¤Þ¤¹¡£

Schwartzian Transform¤Ï¡¢ÌµÌ¾ÇÛÎó¤ò»È¤¦¤³¤È¤Ë¤è¤Ã¤ÆÃæ´Ö¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¤¿¤áºî¶ÈÍÑ
¤ÎÇÛÎó¤òÆÃÊ̤ËÍÑ°Õ¤¹¤ëɬÍפ¬¤Ê¤¤¡¢¤¹¤Ù¤Æ¤Î½èÍý¤ò´Ê·é¤Ëµ­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤È¤¤¤Ã¤¿
ÆÃħ¤¬¤¢¤ê¤Þ¤¹¡£¤·¤«¤·¡¢ÌµÌ¾ÇÛÎó¤ò»ÈÍѤ·¤Æ¤¤¤ë¤¿¤á¤Ë¡¢ÌµÌ¾ÇÛÎ󤫤éÍ×ÁǤò¼è¤ê½Ð¤¹¤È
¤¤¤¦¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬À¸¤¸¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢¼¡¤Î¤è¤¦¤Ëºî¶ÈÍѤÎÇÛÎó¤òÍÑ°Õ¤·¤Æ¹Ô
¤Ê¤¦ÊýË¡¤ÎÊý¤¬¼Â¹Ô®ÅÙ¤¬Â®¤¤¤Ç¤¹¡£

@tmp = map {(split /,/)[2]} @LIST;
@LIST = @LIST[sort {$tmp[$a] cmp $tmp[$b]} 0 .. $#tmp];

¤³¤ì¤Ïź¤¨»ú¤ò¤â¤È¤ËÇÛÎ󥹥饤¥¹¤Ç@LIST¤«¤é¥ê¥¹¥ÈÃͤò¼è¤ê½Ð¤¹¤³¤È¤Ç¥½¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£

¥Ç¡¼¥¿¤¬Â¿¤¯¤Ê¤ë¤È¤ï¤¿¤·¤Ï¤³¤Á¤é¤ÎÊý¤¬¤¤¤¤¤È»×¤¤¤Þ¤¹¤±¤É¡£

²óÅú¼Ô º£Ì뤬¤ä¤¹¤À  [ºï½ü]  Åê¹ÆÆü 3/17(Æü) 08:24:07
¤Þ¤µ¤µ¤ó¤´»ØŦ¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£
³Î¤«¤ËSchwartzian Transform¤Ï¼Â¹Ô¸úΨ¤ÏÎɤ¯¤Ê¤¤¤è¤¦¤Ç¤¹¤Í¡£
ŬÅö¤ÊµðÂç¤ÊÇÛÎó¤ËBenchmark¤ò¤«¤±¤Æ¤ß¤ë¤È³Î¤«¤Ë¾å¤Îsorting¤È¤Î¼Â¹Ô®Å٤ΰ㤤¤¬¤è¤¯¤ï¤«¤ê¤Þ¤¹¡£(^^;
ShwartzianÊÑ´¹¤Ë̵̾¤·ÇÛÎ󤫤éÍ×ÁǤò¼è¤ê½Ð¤¹¤È¤¤¤¦¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬¤¢¤ë¤È¤Î¤³¤È´Î¤ËÌ两Ƥª¤­¤Þ¤¹¡£
¼ÁÌä¼Ô tom  [ºï½ü]  Åê¹ÆÆü 3/19(²Ð) 03:27:47
¤¿¤¯¤µ¤ó¤Î¥Ò¥ó¥È¤È¼ÂÍÑÎãÍ­¤êÆñ¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£
¤¹¤Ù¤È¤ÎÎãÂê¤òÍøÍѤµ¤»¤Æ¤¤¤¿¤À¤­¤Þ¤·¤Æ¡¢
¤è¤¤¥×¥í¥°¥é¥à¤ò´°À®¤µ¤»¤è¤¦¤È»×¤¤¤Þ¤¹¡£

¤³¤Î¥Ú¡¼¥¸¤Ï½ªÎ»¤·¤¿¤Î¤ÇÊÖ¿®(²óÅú)¤Ï½ñ¤­¤³¤á¤Þ¤»¤ó

£×£å£â΢µ»