M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2005年9月10日 01:16

2ちゃんねるのDTPエキスパート認証試験スレッドを問毎に分類してテキスト書き出すスクリプト

このエントリーをはてなブックマークに追加 mixiチェック

(2006-03-23 6.29修正)

M.C.P.C.: 今回のDTPエキスパート更新試験は、問題冊子が数種類あるとのこと

のとおり、問題冊子に種類があるようですので、今回(25期試験と同時に行われる更新試験)の更新試験ではこのスクリプトは使えません。ざんねんでした。

~~~

どうせやるならこういうの作りましょ。

#!/usr/bin/perl -w
 
#filename: expert.pl
#usage: > perl expert.pl 2.txt
 
use strict;
use Encode;
use encoding "cp932", Filter => 1;
use open ":encoding(cp932)";
binmode STDOUT, ":encoding(cp932)"; 
binmode STDERR, ":encoding(cp932)";
 
my @スレッド;
my %問;
my $レス数 = 0;
my $f = 0;
while(<>) {
    $f = 1 if $_ eq "\n";
    $f = 2 if (($_ eq "\n") && ($f == 1));
    if (($f == 2) && ($_=~m/(\d+) :.*/o)) {
        $f = 0;
        ++$レス数;
    }
    $スレッド[$レス数] .=$_;
}
 
for ( my $i = 1; $i <= $レス数; $i++ ) {
    (my $レス = $スレッド[$i]) =~s/\n//g;
    $レス=~tr/0123456789/0123456789/;
    if ($レス =~m/.*(問[\d]+).*/o) {   
    my $問番号=$1;
#    print "$問番号\n";
#    system('pause');
    $問{"$問番号"} .= $スレッド[$i];
    }
}
 
foreach my $key ( sort keys %問 ) {
    my $filename = $key;
    $filename = encode("cp932", $filename);
    utf8::decode($filename);
    open FH,">$filename.txt";
    print FH "【$key】\n";
    print FH "$問{$key}\n";
}
 

Win32、ActivePerl 5.8.6 で確認したよ。

新規フォルダを用意してその中に上記スクリプトを入れて、IEで該当スレッドをコピペして、2.txt というテキストファイルで保存したやつを同じフォルダに入れて、このスクリプトで処理すると、一応それぞれの問いごとに言及した発言が同じフォルダに書き出されますよきっと。

exp-perl
▲問毎に分類されました

正直言うと、ものすごい欠点があるのわかっているんですけれども、誰か直してくれないかな。

投稿 大野 義貴 [Script] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/1315

コメントする