istreamはデリミタが設定できないっぽい。激しく使えねえ・・・。タブ区切りだけで出したいのに、スペースまで区切られたら名前が途中で切れちゃうじゃないか・・・。うーん。仕方ないのでこないだ作ったトークナイザーがこんなところで役立った、と。C++的にはboost/tokenizerあたりを使うんでしょうけど、めんどくせ。
あと、ガンパレやら怪やらで普段とテーブルのフォーマットが違うからparser書き直した。あと怪のタイトルがコメント一覧と終了番組一覧で違うので整合性がとれず。これも個別対応。
use strict; use Jcode; my $replace_before =Jcode::convert('怪〜ayakashi〜JAPANESE CLASSIC HORROR', 'euc-jp'); my $replace_after =Jcode::convert('怪〜ayakashi〜', 'euc-jp'); while(<>){ my $str = Jcode::convert($_, 'euc-jp'); $str =~ s/$replace_before/$replace_after/g; print $str; }
まーそんなこんなで仕事もせずに作ってたわけですが、とりあえずparser系は完成。多分上位互換性はある、はず・・・。あとで確認すべし。