昨日のようなフォーマットにログファイルを変更したので、読み込み部分を変えてみます。
こんな感じ。
sub FILEIN_MSG{ if( open( LOGFILE, "<./msg.txt" ) ){ flock( LOGFILE, 1 ); ($Char_Count, $Vil_Img, $Vil_Css) = split( /<>/, <LOGFILE>); for($index = 0 ; $index < $Char_Count; $index++ ){ $Char_Data[$index] = <LOGFILE>; } @Msg_Data = <LOGFILE>; close( LOGFILE ); } }
ファイルを開き、ロックするところまでは同じ。最初に一行目を読み込み「キャラクター数」「村のイメージ画像URL」「村のスタイルシートのURL」に分割します。
次に「キャラクター数」の分だけ読み込み、キャラクターデータの配列に格納します。
最後に残りの行をメッセージデータとして配列に格納して、ファイルを閉じます。
こうやって読み込んだデータをもとに、出力を行うわけです。出力側はほとんど同じ(変数の値の読み込みの方法が変わっただけ)なので、説明は割愛します。