use lib '.'; use TmmLib6; while(<>) { chomp; my @data = split(/\t/, $_); @data = map { pack('H*', $_) } @data; @data = map { $TL->newString($_, 'sjis')->get } @data; $INDEX->{maxid} = $data[0] if($INDEX->{maxid} < $data[0]); $INDEX->{id}{$data[0]} = $data[1]; $INDEX->{date}{$data[1]}{$data[0]} = 1; $DIARY->{$data[0]} = { date => $data[1], create => $data[2], update => $data[3], subject => $data[4], body => $data[5], }; $INDEX->{lastupdate} = $data[3] if($INDEX->{lastupdate} < $data[3]); &SaveDiary($data[1]); } &SaveIndex; sub SaveIndex { open(DATA, '>data/index.dat') or die "Can't write file 'data/index.dat'\n"; print DATA $INDEX->{lastupdate}, "\n"; foreach my $id (keys %{$INDEX->{id}}) { my @data = ($INDEX->{id}{$id}, $id); @data = map { unpack 'H*', $_ } @data; print DATA join("\t", @data), "\n"; } close(DATA); } sub SaveDiary { my $day = shift; if(!open(DATA, ">data/$day.dat")) { $TL->setContentType('text/html; charset=UTF-8') if ($outcode eq 'utf8'); $TL->printError( -title => 'ERROR', -error => "日記ファイルに書き込めません.[data/$day.dat]", ); $TL->exit; } foreach my $id (keys %{$INDEX->{date}{$day}}) { my @data = ($id, $DIARY->{$id}{date}, $DIARY->{$id}{create}, $DIARY->{$id}{update}, $DIARY->{$id}{subject}, $DIARY->{$id}{body}); @data = map { unpack 'H*', $_ } @data; print DATA join("\t", @data), "\n"; } close(DATA); }