この間ポケモン図鑑について質問させていただいた者です。(ID違いますけど^^;
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1649007
変な質問をしてるかもしれませんm(_ _)m
@list内には
手持ち・・(略)<>あくしゅう<>
ほのお・こお・・<>あついしぼう<>
戦頭に出ると・・<>あめふらし<>
このように1つ目に説明文、2つ目に(特性の)名前が入っています。
それを、
foreach(@list){
($content,$name)=split(/<>/);
}
こんな感じでスカラー変数に代入してるのですが、
各ポケモンのデータを表示するページで説明文を表示するにはどうすればいいのでしょうか?
「$end_tokuse」というスカラー変数にあらかじめ各ポケモンの特性の名前は入っていて、それを上の処理と一致するか、しないかでこんな感じで
print <<EOM;
<table><tr><td>
EOM
ここに上の処理を
print <<EOM;
</td></tr></table>
EOM
持って来て表示させようかと思っていたのですが、表示するデータの量がほかにもたくさんありすぎていちいち切っていると
編集が大変面倒になるので、一致した説明文をスカラー変数に代入して
print <<EOM;
<table><tr><td>
$setume
</td></tr></table>
EOM
このようにしたいのですが、どうすればいいかわかりません。
一致した説明文をスカラー変数に代入して表示させるにはどうすればいいですか。
わかりにくいですがよろしくお願いします。
No.1ベストアンサー
- 回答日時:
ちょっと何が聞きたいのか判断できません。
#以下の例のインデントは全角空白を使ってますので
#コピーする時は半角などに変換してください。
#あと、書いている処理に関してはテストしてないです(^^;
特性に対する説明文を表示したいという事なのですが
foreach(@list){
($content,$name)=split(/<>/);
if( $end_tokuse eq $name ){
print "$content\n";
last;
}
}
という感じで表示できますよね?
表示するデータの量がほかにもたくさんありすぎて
いちいち切っていると編集が大変面倒になるので
という事ですが、「表示するデータ量」というのは
何の量なのでしょうか?
特性の量?ポケモンの量?ポケモンが持っている特性の量?
「いちいち切っていると」というのは、split()の事でしょうか?
「編集が大変」というのは、書く場所が多いから?ですか?
一致した説明文をスカラー変数に代入して表示させるには
どうすればいいですか。
というのは
foreach(@list){
($content,$name)=split(/<>/);
if( $end_tokuse eq $name ){
$setume = $content;
last;
}
}
という事では無いのですか?
出来れば最終的にどのように表示したいのかの
例をあげていただけるとありがたいです。
例)
ピカチューの特性は雷です。
これを表示するのに
名前:ピカチュー
特性:雷
説明:ここに説明を書きたい
名前:思い浮かばない(複数特性がある場合)
特性:水
説明:水に対する説明
特性:火
説明:火に対する説明
特性が可変な為、それをどのように表示すればいいでしょうか?
という感じだとわかりやすいかも・・・
あと、質問の意図とは違うかもしれませんが、
複数の特性を表示する為に簡単な方法として
1.特性に対する説明文を抜き出す関数を作る
#表示部が簡易にできる。
sub GetComment(){
local( $char ) = @_;
foreach( @list ){
( $comment, $name ) = split( /<>/ );
if( $char = $name ){
return $comment;
}
}
return "そのような特性はありません。";
}
$setume = &GetComment( $end_tokusei );
2.最初に連想配列に入れておく
#分割処理が1度でいいので、表示数が増えても
#処理時間が少なくて済む
foreach( @list ){
( $comment, $name ) = split( /<>/ );
$Com{$name} = $comment;
}
print $Com{$tokusei1};
print $Com{$tokusei2};
ファイルに組み込んでやってみましたが、
500エラーになってしまいました。
でも質問の内容が良くわからないようなので、
普通に
print <<EOM;
<table><tr><td>
EOM
ここに表示処理
print <<EOM;
</td></tr></table>
EOM
を入れる方法でいきたいと思います。
ありがとうございましたm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- PHP PHP MySql ページング 2 2022/09/20 06:38
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
ターミナルで特定の文字と文字...
-
Perlでの文字列置換
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlのrequireの動き方について...
-
ペプシコーラとコカ・コーラとD...
-
perlについての質問
-
perl このテキストファイルを簡...
-
Perlでファイルの末尾から指定...
-
Perlで特定文字列から特定文字...
-
Perlのプログラムについて
-
CGIでimgタグでalignを使うとエ...
-
openした後、closeしないでプロ...
-
perl 初等プログラミングについて
-
Windows版のPerlについて
-
このファイルを開く方法で困っ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
INDIRECT 横に再度抽出したい
-
perlをバージョンアップしたら...
-
openした後、closeしないでプロ...
-
Perlで特定文字列から特定文字...
-
Wallpaper Engineでおすすめの...
-
Perlのエラーについてご教授く...
-
アルファベットに付いて質問し...
-
Strawberry Perl for Windows ...
-
bashスクリプト
-
テキストファイルで提出とは?
-
Perl の外部モジュールの利用方法
-
#!/usr/bin/perlで書きだしたCG...
-
Windows10においての『Perl』の...
-
perlのflock関数でロックをかけ...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlのrequireの動き方について...
-
画像が表示でnull; this.src
-
ターミナルで特定の文字と文字...
-
英数文字列のうちの数値を4桁に...
おすすめ情報