再び新規質問で申し訳ありません
これしか方法がわからなかったもので;
csvデータから最初の項目に5というものが含まれている場合
その列を表示する、というのを先ほど質問させていただいて解決に至りました。
csvデータファイルの内容
5,データ1,データ1の説明
5,データ2,データ2の説明
5,データ3,データ3の説明
6,データ4,データ4の説明
・・・
↓
open(IN, "data.csv");
while (<IN>) {
if ((split(/,/))[0] == 5) {
print $_. "\n";
}
}
close(IN);
これで最初の欄に5が含まれている列だけ表示されるのですが
htmlに出力すると、そのまま下記のように表示されます
5,データ1,データ1の説明 5,データ2,データ2の説明 5,データ3,データ3の説明
これでは余りにみずらいので、以下のように変更しました
open(IN, "data.csv");
print "<table>";
while (<IN>) {
if ((split(/,/))[0] == 5) {
print "<tr><td>". $_. "</td></tr>";
}
}
</table>
close(IN);
これで少しは見やすくなったのですが・・・
↓のように。
5,データ1,データ1の説明
5,データ2,データ2の説明
5,データ3,データ3の説明
この,で区切られた部分も</td><td>で表示したいのですがうまくいきません。
先ほど質問した時に教えていただいたURLを参照しましたがサッパリでした;
検索で、csvファイルをリストに格納して
print "<table><tr>";
print "<td>$data_view[0]</td>";
print "<td>$data_view[1]</td>";
print "<td>$data_view[2]</td>";
print "</tr></table>";
と表示させれば良い、という記事をみつけたのですが
これをすると
先ほど成功した最初のデータに5が一致した分だけ表示させる、という部分が機能しませんでした;;
まだまだ勉強不足かとは思いますが何卒お願い致します
No.1ベストアンサー
- 回答日時:
$_を2次元配列だと思って扱えばよいのでは。
while (<IN>) {
if ((split(/,/))[0] == 5) {
## ↑2次元まで指定できている
print "<tr><td>". $_. "</td></tr>";
## ↑1次元目までしか指定されていない
}
}
実際には$_[i]の中身は配列ではなく、「,」で結合されている文字列ですので、「データ1の説明」にアクセスするには、if節でやったように、「,」で切り分けて添え字を指定してやればいいと思います。
初期処理として、csvデータの中身を本当に2次元配列に放り込むという手もあります。
データをほかの処理でも使うなら、こっちの方が便利だと思います。
No.2
- 回答日時:
カンマで分割したリストを @data_view に格納し、その後で $data_view[0] == 5 のデータのみを表示すればよいでしょう。
open(IN, "data.csv");
print "<table>";
while (<IN>) {
chomp; # 末尾の改行を落とす
my @data_view = split /,/;
if ($data_view[0] == 5) { # 先頭のデータが 5 なら表示
print "<tr>";
print "<td>$data_view[0]</td>";
print "<td>$data_view[1]</td>";
print "<td>$data_view[2]</td>";
print "</tr>";
}
}
</table>
close(IN);
※インデント等に全角空白を使っているので、コピーする場合はタブなどに変換してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- その他(プログラミング・Web制作) python 3.10で 同じlistに同じ構文で同じデータ代入した結果が異なる現象発生 7 2022/06/18 11:08
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- Excel(エクセル) エクセルで対象日に該当するデータがある場合に別表へ全対象者を表示させたい。 3 2023/07/12 09:48
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlでcsvファイルを読む(ダブ...
-
BBCode削除&改行をサニタイジ...
-
VBAでCSVファイルを途中行まで...
-
バッチファイルの作り方(CSV→...
-
close()で例外が投げられる理由
-
VBAで巨大なファイルの途中から...
-
DOSコマンドで、標準出力を出力...
-
VBAでCSVファイルの特定行を書...
-
FindFirstFileとFindNextFileで...
-
ExcelをCSV書き出す場合のシー...
-
perlで指定範囲を複数ファイル...
-
VB6.0でDB接続する際に切断時の...
-
sprintfについて
-
python renameについて
-
アルゴリズム java お店の営業...
-
batファイルでrenameができませ...
-
Perl UTF8で出力
-
sysread と read はバイナリ読...
-
Windowsで複数のファイルを同じ...
-
tar.gzの圧縮解凍について教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlで特定行から特定行までを...
-
perlでcsvファイルを読む(ダブ...
-
Argument "\\\\n" isn't numeri...
-
文字化け対策
-
Perlの初心者です。2重ループ...
-
コマンド上の行間
-
MATLAB std::exceptionエラー
-
Perlを利用してテキストフ...
-
cgiのログの書き方
-
ディレクトリ内のtxtファイル中...
-
FTP接続時失敗時、接続先名をcs...
-
郵便番号辞書のアップデート手...
-
foreachの制御
-
ファイルの3行目までを出力したい
-
CGIでのgrep関数においての質問
-
テキストファイルへ行指定での...
-
VBAでCSVファイルを途中行まで...
-
VBAでCSVファイルの特定行を書...
-
ExcelをCSV書き出す場合のシー...
-
batファイルでrenameができませ...
おすすめ情報