[リストへもどる]
一括表示
タイトルMSBookshelf2の故事ことわざ辞典のEPWING化
記事No48
投稿日: 2008/03/23(Sun) 21:12:55
投稿者tree
マイクロソフトBookshelf2故事ことわざ辞典のEPWING化法です。長くなりますが、掲示させてください。
UWSCとperlを使わせていただいています。どちらもよくわかっていません。見よう見まねです。

Bookshelf2はすごい辞書と思っているのですがオークションで500円程度で落とせますね。故事ことわざ辞典の本の定価は5000円程度のものと思っています。
かなのところに欠点がありますが実用にはそれほど問題ないように思っています。
見出しの部分で(a)が(b)のようになっています。
(a)愛(あい)出(い)ずる者(もの)は愛返(かえ)り、福(ふく)往(い)く者は福来(き)たる
(b)愛出ずる者は愛返り、福往く者は福来たる【あいいずるものはかえり、ふくいくはきたる】
次は字通にチャレンジしてみようと思っています。

(kotowaza.uws)------------------------------
file_name = "c:\kotowaza\kotowaza.txt"
err_file_name = "c:\kotowaza\kotowaza_err.txt"
kktextback = ""

for i=1 to 2000
ACW(GETID("Microsoft/Shogakukan Bookshelf Version 2.0 - 故事ことわざの辞典","BS98J"),176,363,635,708,0)
SLEEP(0.1)
KBD(VK_SHIFT,DOWN,40)
KBD(VK_CTRL,DOWN,40)
KBD(VK_OEM_PERIOD,CLICK,40)
KBD(VK_SHIFT,UP,0)
KBD(VK_CTRL,UP,0)
SLEEP(0.2)
KBD(VK_CTRL,DOWN,40)
KBD(VK_C,DOWN,40)
KBD(VK_CTRL,UP,0)
KBD(VK_C,UP,0)
SLEEP(0.2)

kktext = GETSTR(0)
IFB kktext="" THEN
tf = FOPEN(err_file_name,F_READ or F_WRITE)
FPUT(tf,"**********null",0)
FPUT(tf,kktextback,0)
FCLOSE(tf)
ELSEIF kktext=kktextback THEN
tf = FOPEN(err_file_name,F_READ or F_WRITE)
FPUT(tf,"**********dup",0)
FPUT(tf,kktextback,0)
FCLOSE(tf)
ELSE
tf = FOPEN(file_name,F_READ or F_WRITE)
FPUT(tf,"**********",0)
FPUT(tf,kktext,0)
FCLOSE(tf)
ENDIF
kktextback = kktext
next

(kotowaza_cc.pl)---------------------------------------------------------------
use encoding 'cp932';
$flg = 1;
open IN, '<:encoding(cp932)', 'kotowaza.txt';

print "<html>\n";
print "<head>\n";
print "<title>故事ことわざ辞典</title>\n";
print "</head>\n";
print "<body>\n";
print "<dl>\n";

$flg = 1;
while(<IN>){
httpif(/\*\*\*/){
httphttp$flg = 0;
httphttpprint "\n";
http}
httpelsif(/^Koji Kotowaza Proverb Dictionary/){
httphttpprint "<\/dd>\n\n";
http}
httpelsif($flg == 0){
httphttpchomp;
httphttp$kana = $_;
httphttp$kanji = $_;
httphttp$kanji =~s/\(.*?\)//g;
httphttp$kana =~s/[\(-\)]//g;
httphttp$kana =~s/\p{Han}//g; #← 漢字を削る
httphttpprint "<dt id=\"$kanji\">$kanji"; #← タグをつける
httphttpprint "【".$kana."】</dt>\n<dd>";
httphttp$flg = 1;
http}
httpelsif(/^⇒/){
httphttpchomp;
httphttp$sansho = $_;
httphttp$sansho ==~s/⇒//g;
httphttps/\(.*?\)//g;http
httphttpprint "<a href=\"#".$_."\">".$sansho."</a>";
http}
httpelse{
httphttp$flg++;
httphttpchop;
httphttpprint $_;
http}
}
print "</dl>\n";
print "</body>\n";
print "</html>";
# perl kotowaza_cc.pl > kotowaza_cc.html
#コマンドプロンプトで実行です。
-------------------------------------------------------------------