CGIプログラムの件でご質問したいのですが、datファイルのレース結果をCGIプログラムを使ってHTMLに表示したいと思っています。
datファイルの内容は、レースの結果が1位から順に10位くらいまでA,B,Cクラス混合で並んでいます。
1,Aクラス,青チーム,12:50,山本太郎
2,Cクラス,赤チーム,11:23,山田花子
3,Bクラス,黄チーム,10:52,松本典子
4,Aクラス,桃チーム,10:32,加藤茶子
それをCGIプログラムによって、各クラスごとに表示します。
CGIのプログラムの内容は、
open (FILE, "<data.dat") || die "File 'data.dat' Open Error.";
@all = <FILE>;
close(FILE);
foreach (@all){
($data1, $data2, $data3, $data4,$data5) = split(/,/, $_);
next unless ($data2 eq "A");
&one_data;
}
sub one_data {
print << "END_OF_ONE";
<P>$data1位<BR>
$data2<BR>
$data3<BR>
$data4<BR>
$data5<BR>
</P>
END_OF_ONE
}
1;
だいたいこんな感じですが、この各クラスごとに表示したHTMLのファイルの順位のところが、もとのdatファイルの順位になってしますので、それを1位から順にクラス別の順位として表示したいのです。
それにはどのようにしたらよいでしょうか?
すみません、あまりperlの言語の知識がないもので。。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
私の場合、sortを使います。
例えば、
a,100
b,300
c,200
というデータがあって、後ろの番号順にしたい場合は、
foreach (@all){
chop;←改行を消す
($data1, $data2) = split(/,/);←$_は無くてもOK
$data{$data2} = $_;
}
foreach (sort $a <=> $b keys(%data)){
print "$_\n";
}
とすれば、
a,100
c,200
b,300
となると思います。
b,300
c,200
a,100
にしたい場合は、
foreach (sort $b <=> $a keys(%data)){
にします。(もしかしたら、逆かも・・・)
ちなみに、文字をソートしたい場合は、<=>をcmpにすればできます。
ありがとうございました。
でも、結局、
# クラス毎順位カウンタ
$Rank = 1 ;
# すべてのデータについて繰り返す
foreach (@all){
# 1行の文字列をコロンを目印にして項目に分割する
($data1, $data2, $data3, $data4,$data5, $data6, $data7, $data8, $data9) = split(/,/, $_);
next unless ($data3 eq "A");
# 1件分のデータを表示するサブルーチン
&one_data;
# カウントダウン(順位を下げる)
$Rank++ ;
}
というふうにしました。
ご協力ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- C言語・C++・C# プログラミングの問題です。写真のプログラムの1から10を下のように入力しましたがプログラムが上手くい 3 2022/07/01 23:31
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- その他(プログラミング・Web制作) pandasでまとめてインデックスを削除するにはどうすればいいですか? たとえば、以下のプログラムで 1 2022/07/31 23:09
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
number 改行が追加できない
-
エクセルで集計したい。
-
htmlからパラメータで、cgiに渡...
-
生成AI画像について
-
フォームを再送信しますか?
-
CGIって何ですか?簡潔に教えて...
-
ホームページの事でおしえてく...
-
ホームページでCGIのフォームを...
-
CGIが読み書きするデータファイ...
-
(フリーの)ツリー掲示版CGI、...
-
cgiの注釈が出来ない
-
apacheでPerl CGIが作動せず、5...
-
3DCG
-
ホームページにメールフォーム...
-
cgi アクセス制限 エラー
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
-
ホームページにCGIを設置したの...
-
ホームページにCGIを設置したの...
-
サーバーのエラーでおしえてく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで集計したい。
-
フォームを再送信しますか?
-
apacheでPerl CGIが作動せず、5...
-
ホームページでCGIのフォームを...
-
生成AI画像について
-
/bin/awk '{print $5}'ってどう...
-
入力フォーム(電話番号)
-
(フリーの)ツリー掲示版CGI、...
-
古ーくからフリーのtree.cgi掲...
-
VBAで条件から範囲を指定して色...
-
ホームページにメールフォーム...
-
一番簡単なCGI,掲示板の設置教...
-
CGIって何ですか?簡潔に教えて...
-
サーバーのエラーでおしえてく...
-
サイト訪問者の情報を取得したい
-
htmlからパラメータで、cgiに渡...
-
CGIで出力するhtmlの<!DOCTYPE ...
-
cgiからsendmailを送信で文字化け
-
POSTメソッドの最大容量について
-
ホームページにCGIを設置したの...
おすすめ情報