昨日のようなフォーマットにログファイルを変更したので、読み込み部分を変えてみます。
こんな感じ。
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」に分割します。
次に「キャラクター数」の分だけ読み込み、キャラクターデータの配列に格納します。
最後に残りの行をメッセージデータとして配列に格納して、ファイルを閉じます。
こうやって読み込んだデータをもとに、出力を行うわけです。出力側はほとんど同じ(変数の値の読み込みの方法が変わっただけ)なので、説明は割愛します。