dポイントプレゼントキャンペーン実施中!

はじめまして!Nakanoと申します。

えっと、以下質問になります。おねがいします。。

CGI/Perlを始めて1週間程度の素人なのですが、
CSVファイルをHTMLのテーブル表示させる
様にしたいなと思っています。
そこで用意したCSVファイルが5行と8列で
カンマ区切りのみで構成されています。
このCSVファイルから3行目だけを抽出する方法
ってありますでしょうか?

1行目のみ表示や1行目以外の2行目以下全てを表示
させたりは出来たのですが、3行目だけを表示するの
がどうしても分かりませんでした・・・・・

何方様か。よろしければその辺の所を詳しくご指導
いただけないでしょうか?

よろしくおねがいします。

A 回答 (3件)

open(NW,"$csv");


seek(NW,0,0); @news = <NW>; close(NW);
print "$news[2]";

とりあえず、これでいくんちゃう?
ファイルをオープンして、@newに入れて閉じて、
配列の0から初めて3番目を取り出す。

@news って、
$new[0] = "零";
$new[1] = "一";
$new[2] = "二";
$new[3] = "三";
の集まりだから、ファイルを配列に入れちゃえすれば、
あとは、変数として取り出せる、っと。

あとは、下の人みたいに、
ループなら、
 for($i=0; $i<$#new; $i++){
if($i eq 3){print "$new[$i]";} }
$#newは、newの配列の総数。

あとは、spliceで配列から切り取って、って方法も
あるけど。

・・・最近phpしかつかってないから、あってないかも。^^;
    • good
    • 0
この回答へのお礼

happy books 様

返事が遅くなって申し訳ありません。
お早い返事ありがとう御座います。

ソースの方大変参考になりました。自分の作った
ソースに組み込んでみたらちゃんと行指定が出来ました。
ありがとう御座います。

ただ一つ気になるのが、『seek(NW,0,0);』この中の数字
が何を意味しているのか解りませんでした。無くても指定
出来ちゃう?あれ??
もっと凝った使い方する時にひつようなのかな~???

とにかく行指定は出来るようになったから良いのですが…

あっ、あとsplitで配列から切り取って、っていうのも
出来るんですか?どうするのでしょうか?

よろしくおねがい致します

お礼日時:2005/03/24 08:01

早速訂正。



new と news が混じってるけど、統一してください。
それと、newやnewsは関数じゃなくって、変数名・配列名
なので、適当に変えても大丈夫。
newって関数ありそうだもんね。

とりあえずは、この辺は初期の初期で、大事な所だから、
納得いくまでいじってみたら~♪^^;
    • good
    • 0
この回答へのお礼

happy books 様。 お世話になります。

ご丁寧に訂正頂きありがとう御座います。^^

お礼日時:2005/03/24 08:02

whileで回すんですよね?



$num = 0;
while($file = <CSV>){
 $num++;

 if($num == 3){
  print "$file";
  last;
 }
}

とかでできそうですかね。
確か、現在の行番号を取得する
特殊変数もあった気がします。
そちらの方が簡単かもしれませんが
私がよく使う手は、これです。
    • good
    • 0
この回答へのお礼

nekoda nekomichi 様

返事が遅くなり申し訳ありません。
またお早い回答ありがとうございます。

出来る、という事がわかっただけでも助かりました。
掲載情報も参考にさせていただきます。^^

お礼日時:2005/03/24 07:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!