□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■ ------------------ CGI・3分クッキング ---------------------(^○^)~~ 発行日:1999年7月06日 毎週火曜と金曜発行 Vol.【001】 ●PR●━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ★「Hitmail」★毎日100社申込む、高品質低価格レンタルサーバ★「Hitmail」★ JPドメイン取得月間No.1記念にて、【独自ドメイン】+【初期費用】無料提供中! click< http://a.clickincome.net/md/dk?mid=ad1854656c09d7d93d701e27546e9bba > ⇔⇔Web新撰組News http://www.web-kyoto.com/ ⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔ 現在初心者向けのCGI本(の一部)を執筆中。 わかりやすい本になるように頑張ってます。 発売日が決まったら、報告しま〜す。 ⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━●PR● □■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■ 【今日の献立:並べてポン】==========================================   今日は、ランキングCGI等に役立つ並べ替えルーチンを紹介します。 例えば、以下のようなデータがあったとします。 はぎちゃん:10000 もたえ:-10000 鷹:20 最初が名前で、:が区切り文字、その後は点数です。 これを点数の多い人から順に表示するようなルーチンを考えましょう。 このデータファイルの名前が、kacchoii.dataだったとして解説します。 先ずは、データの読み込みまで #!/usr/local/bin/perl $DataFile="./kacchoii.data"; open(IN,"$DataFile"); while(){ $data=$_; chop($data); push(@lines,$data); push(@keys,(split(/:/,$data))[1]); } close(IN); chop($data);は、改行コードを取っています。 push(@lines,$data);は、読み込んだ行を配列@linesに放り込みます。 push(@keys,(split(/:/,$data))[1]);は、並べ替えになるキー(点数)を 配列@keysに入れています。(split(/:/,$data))[1]は、$dataを:区切りで ちょんぎった2つめの値、って意味です。配列は[0]から始まるので、[1] ってなってます。 続き、並べ替えとデータ表示の部分 sub bykey { $keys[$b] <=> $keys[$a];} @sorted = @lines[sort bykey $[..$#lines]; print join("\n",@sorted); 簡単でしょ? <=>は数字の比較演算子です、アルファベット順とか文字で並べ替えする 時は、<=>の代わりにcmpを使います。 joinは、splitの反対で、リストを\n区切りでひっつけるというもんです。 これはCGIではないのでブラウザからはちゃんと表示されません。 次回は、これをCGIに仕上げます。 ===============================================================【続く】 ---------------------------------------------------------------------- このメールマガジンは、 Subject部が、CGI3分クッキング【Vol.番号】は、まぐまぐ様にて、 ( http://www.mag2.com/ ) Subject部が、CGI3分クッキング Vol.【番号】は、Macky様にて、 ( http://macky.nifty.ne.jp/ ) Subject部が、CGI3分クッキング番号 は、Pubzine様にて、 配布致しています。 メールマガジンの解除について まぐまぐ様の解除は、 http://www.web-kyoto.com/dp/3min/ に、削除及び登録フォームを用意致しております。 Macky様の解除は、 http://macky.nifty.ne.jp/ を参考して下さい。 Pubzine様の解除は、 http://www.pubzine.com/srchid.asp?keyword=1379 に、削除及び登録フォームを用意致しております。 ---------------------------------------------------------------------- (^○^)/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 【お願い】 このマガジンについてのお問い合わせは、WEB新撰組メーリングリストで、 お願い致します。 参加方法は、 http://www.web-kyoto.com/ml/ を参考にして下さい。 はぎちゃんに対する質問・苦情は、このメールマガジンのリプライでどうぞ。 麗しいお嬢様の質問は個人的に大歓迎です。 【今回の担当】 WEB新撰組CGIプログラマー はぎちゃん(萩原 逸郎)でした。                 監修 組長(津田 羊子)&鷹(津田 貴史) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\(^○^)