@FileInに読み込んだデータを順に取り出して、出力するソースコードを書いてみます。
まずは、読み込んだ行数分、ループさせます。
for($msgcnt = 0 ; $msgcnt < @FileIn; $msgcnt++ ){
&STDOUT_MSG( $msgcnt );
}STDOUT_MSGというのは、メッセージを標準出力に書き出すためのユーザ定義関数で、以下のようにしてみました。
sub STDOUT_MSG {
( $Msg_Type, $Msg_Char, $Msg_Icon, $Msg_Time, $Msg_Text) = split( /<>/, @FileIn[@_[0]] );
if( $Msg_Type < 80 ){
print "<div class=\"cell\"><div class=\"char\">\n";
print "<img class=\"char\" src=\"$Msg_Icon\" width=\"50\" height=\"50\" alt=\"$Msg_Char\"></div>\n";
print "<div class=\"name\">$Msg_Char [$Msg_Time]</div>\n";
print "<div class=\"msg$Msg_Type\">$Msg_Text</div><br class=\"clear\"></div>\n";
print "<br>\n";
}else{
print "<div class=\"cell\">\n";
print "<div class=\"name\">システムメッセージ [$Msg_Time]</div>\n";
print "<div class=\"msg$Msg_Type\">$Msg_Text</div><br class=\"clear\"></div>\n";
print "<br>\n";
}
}splitで「<>」を区切り文字にして、各項目を切り出しています。Msg_Typeが80の時はシステムメッセージなので、if文で別処理にしてあります。
まあ、これで一応上手くいっています。