ファイルの入出力2
指定したフォルダ内にあるcsvファイルのデータを
指定したhtmlファイルに出力するプログラムを書いているのですが、
下記のままだとcsvファイルにあるすべてのデータをとってきてしまいます。実現させたいことは「指定したフォルダ内にあるcsvファイル2行目のデータだけファイル出力する」というものです。
どなたかご協力お願いします。
#!/usr/bin/perl
#--------------------------------------------------------------#
# ディレクトリを開く
#--------------------------------------------------------------#
opendir(DIR,"test/");
#--------------------------------------------------------------#
# 出力ファイル名を指定
#--------------------------------------------------------------#
$dest = "test.html";
open (OUT, ">$dest") or die "$!";
#--------------------------------------------------------------#
# 出力ファイルにhtmlを出力
#--------------------------------------------------------------#
print OUT '<html>
<head>
<title>無題ドキュメント</title>
<style type="text/css">
<!--.style1 {color: #FFFFFF}-->
</style>
</head>
<body>
<table width="419" height="105" border="0" cellpadding="0" cellspacing="0">
<tr>
<th bgcolor="#000000"><span class="style1">名前</span></th>
<th bgcolor="#000000"><span class="style1">住所</span></th>
<th bgcolor="#000000"><span class="style1">性別</span></th>
</tr>';
#--------------------------------------------------------------#
# ディレクトリにあるファイル名を取得
#--------------------------------------------------------------#
while ($filename = readdir(DIR)) {
# ディレクトリにあるファイルパスを取得
$path = "test/$filename";
if(-f $path) {
# ファイルオープン
open (IN, $path) or die "$!";
while (<IN>) {
# カンマ区切りでデータを取得&改行削除
chomp(@data = split(/,/, $_));
print OUT "<tr>\n";
# 各行の3つのカンマ区切りデータを取得
print OUT "<th bgcolor=\"#666666\">",$data[0],"</th>\n<td>",$data[1],"</td>\n<td>",$data[2],"</td>\n";
print OUT "</tr>\n";
}
close(IN);
}
}
#--------------------------------------------------------------#
# ディレクトリを閉じる
#--------------------------------------------------------------#
closedir(DIR);
print OUT "</table>
</body>
</html>";
#--------------------------------------------------------------#
# ファイルを閉じる
#--------------------------------------------------------------#
close(OUT);
お礼
できましたぁ~。なるほどこういうことだったのですね 解決です。ありがとうございました