自作辞書

死体検案の当番のため法医学の勉強が必要となります。オンラインで関西医科大学のHPが大変参考になります。
先日は家族と外食中に呼び出されたので、そのようなときにiphone辞書に入れておくと楽です。

また治療薬も、日々新しい薬が出た場合、追加しておけます。

管理(河合ルール)

辞書名をフォルダ名とする。例 law など。

この名前のフォルダをrippingとelementフォルダ内に作っておく。
辞書名が漢字だと、図のimgリンクを張るときに不可の可能性あり。

原稿のテキストはrippingフォルダのなかに入れておく(赤の文字)。

変換後の.dicはマクロによりここに作られる。

図はelementフォルダの中に[ JPG ]と言うフォルダを作成(青文字)

デスクトップの親フォルダ
┣ripping━━┳━━━━━━原稿フォルダ
┃        ┃
┃        ┣━━━law       任意の数の原稿のテキストファイル達を入れておく。
┃        ┗━━━mydic
┣element━┳━━━━━変換後HTMLを統合した単一ファイルを入れる。
┃       ┃
┃       ┣━┳━law        原稿から作られたHTMLの統合ファイルlawall.dicが入る。
┃       ┃  ┗JPG         図はここに入れておく。
┃       ┗━┳━mydic
┃           ┗JPG
┗DIC━━━━━EWING化されたファイル、転送直前のもの。

辞書の要素

rippingのlaw,mydicなどでテキストで管理、修正、追加します。
図を入れたいときは後述のマクロを本文中に入れておき、JPGフォルダに入れます。図はelement側であることに注意。リンクを張るときには統合されたHTMLはelement側にはいるため。

自動化のためのマクロとWSH

以下のマクロを作りました。

1.WSH

2.HTML化

3.図挿入

秀丸マクロ呼び出し〜WSH〜

秀丸マクロは任意のフォルダの全部をスキャンするのが不得意なので(というかできない)WSHを使います。

機能

fol変数に(rippingフォルダ内における)辞書テキストの入ったフォルダlawを入れて実行すると、

1.そのフォルダ("law")内の任意の名前のテキストファイルを開いて
  秀丸マクロでHTML化し    .dic拡張子をつけて保存+終了  を繰り返す。
2.1.で作られたフォルダ("law")内の「 .dic」 で終わるファイルをくっつけてelementフォルダ内の同名のフォルダ("law")内に("law")をつけたlawall.dicのような単一ファイルを作ります。

したがって図はelementフォルダ内の同名のフォルダ内に「JPG]の3文字のフォルダを作り、その中に保存します。こうすることで後述の「図の挿入マクロ」が有効になります。

Dim objWshShell
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set Shell = CreateObject("WScript.Shell")
pat="C:\Documents and Settings\河合正巳\デスクトップ\今日の治療2009Dic\ripping\"
dic="C:\Documents and Settings\河合正巳\デスクトップ\今日の治療2009Dic\element\"

fol="law"

Texts =pat+fol
dest=dic+fol
Set Obj = CreateObject("Scripting.fileSystemObject")
Set rootcopy = Obj.GetFolder(Texts)
'テキストはripping+folに、出来た辞書は同じ名前のelement+folに入る。
'図はelement+JPGフォルダに入れる。
For Each F In rootcopy.Files
 s= obj.GetAbsolutePathName(f)
 if right(s,4)=".txt" Then
  Hide="""C:\Program Files\Hidemaru\Hidemaru.exe"""+" /x辞書化01自動終了.mac "+""""+s+""""
  objWshShell.Run Hide,,true
 end if
Next
hide="cmd /c "+""""+" copy "+""""+texts+"\*.dic"+""""+" "+""""+dest+"\"+fol+"all.dic"+""""
objWshShell.Run Hide,,true
Set objWshShell = Nothing

HTML化秀丸マクロ

機能

HTML化マクロを走らせると同じフォルダ内に".dic"と言う拡張子のファイルが作られます。
最後にそのフォルダに移動して
copy *.dic all.dic
とすると辞書が完成、後はEBstudioで同じ手順。
辞書が独立するので、おなじ書籍で作っても検索時には分けられます。

//河合式辞書フォーマット
//1行目は辞書名
//2合目はタイトル
//3行目はサブタイトル、強調表示される。
//一番下2行は削除
//\nを<br>にして.dicをつけて保存。
//半角変換
selectall;
filter "","ToHankakuAlnum";
escape;

//一番下2行は削除
//call Last2line;

//辞書名取得
call Headcutter;
$Dic=$Clip;
//タイトル名取得
call Headcutter;
$title= $Clip;
//サブタイトル名取得
call Headcutter;
$subtitle=$Clip;


////HTMLの改行<br>を挿入する作業.

replaceallfast "\\n" , "<br>\\n" , regular;
if( ! result ) beep;
replaceallfast"(<br>\\n<br>){1,100}" ,"<br>",regular;
gofiletop;
insert "<h1>"+$title+"</h1>\n";
insert "<strong>"+$subtitle+"</strong>\n";
insert "<P>\n";
gofiletop;
insert "<html>\n<head>\n<title>"+$Dic+"</title>\n</head>\n<body>\n";
gofileend;
insert "</P>\n";
insert "\n</body>\n</html>";
//saveas $folder+basename2+".dic";
saveas filename2+".dic";
exit;
endmacro;
Clipper:
beginclipboardread;
$Clip="";
ClipLoop:
$$a= getclipboard;
if ($$a=="") return;
$Clip=$Clip+$$a;
goto ClipLoop;


Last2line:
last2line:
gofileend;
golinetop2;
up;
beginsel;
gofileend;
delete;
return;
GetUnderbar:
#a=strstr($$1,$$2);
if(#a<1) {
message "Error, no divider string";
endmacro;
}
$L=leftstr($$1,#a);
$R=midstr($$1,#a+strlen($$2),1000);
return $L;


置換:
//置換関数$$1元文字列$$2検索文字列$$3置換文字列
$$a=$$1;
$$b=$$2;
$$c=$$3;
while (strstr($$a,$$b) >-1)
{##n=strstr($$a,$$b);
$$a=leftstr($$a,##n)+$$c+midstr($$a,##n+strlen($$b),1000);
};

return $$a;

Headcutter:
gofiletop;
beginsel;
golineend2;
cut;
call Clipper;
delete;
return;

図の挿入マクロ

Sを押すとカーソル行を強調、23はそれぞれh2,h3のタグを入れます。
クリップボードに図のファイル名を入れてiを押すとリンクを張ります。

//あたらしく作るときは1:/メッセージ作製、2:/配列の数、3:/ファイル挿入をなおしてください。
//当然だけどコマンドの英文字は重複してはいけません。また配列の順番で呼び出すので、/メッセージ作製の順番に/ファイル挿入を記述してください。また/を削除するのを忘れずに。
//メッセージ作製

$insert[0] = "&" + "<<iphoneコマンド>>";
$insert[1] = "&" +"S" +" " + "強調";
$insert[2] = "&" +"2" +" " + "h2";
$insert[3] = "&" +"3" +" " + "h3";
$insert[4] = "&" +"i" +" " + "画像入力";
$insert[5] = "&" +"e" +" " + "ebook無駄な改行小説";
$insert[6] = "&" +"H" +" " + "ebookヘッダ作成";
$insert[7] = "&" +"1" +" " + "小頭の題字がある場合";
$insert[8] = "&" +"4" +" " + "治療指針03.mac";
$insert[9] = "&" + "5" +" " + "辞書化01.mac";
//$insert[10] = "&" +"" +" " + "";
//$insert[11] = "&" +"" +" " + "";

//配列の数すなわち{}の最後の数+1
#num=15;
//メッセージ表示
menuarray $insert, #num;

//例外処理
 if (result == 0 || result > #num)
 endmacro;

//ファイル挿入

 #ans=result;
 if (#ans == 2 ) call tagMake "strong";
 if (#ans == 3 ) call tagMake "h2";
 if (#ans == 4 ) call tagMake "h3";
 
 if (#ans == 5 ) {;
  call Clipper;
  insert "<img src=\"\\JPG\\"+$Clip+"\" alt=\"図\" >";
  };
 if (#ans == 6 ) execmacro "Ebook.mac";
 if (#ans == 7 ) execmacro "iphone_stanza_html.mac";
 if (#ans == 8 ) {
 replaceallfast "Chapter\.+\\f\n","\\0-",regular,nocasesense;
replaceallfast "CHAPTER\.+\\f\n","\\0-",regular,nocasesense;
           }
 if (#ans == 9 ) execmacro "治療指針03.mac";
 if (#ans ==10 ) execmacro "辞書化01.mac";
endmacro;
//カーソルアップ
curup:
up ##1;
execmacro "at.mac";
return;


tagMake:
golinetop;
insert "<"+$$1+">";
golineend2;
insert "</"+$$1+">";
return;
endmacro;
Clipper:
beginclipboardread;
$Clip="";
ClipLoop:
 $$a= getclipboard;
 if ($$a=="") return;
 $Clip=$Clip+$$a;
goto ClipLoop;


Last2line:
last2line:
gofileend;
golinetop2;
up;
beginsel;
gofileend;
delete;
return;
GetUnderbar:
#a=strstr($$1,$$2);
if(#a<1) {
 message "Error, no divider string";
 endmacro;
 }
 $L=leftstr($$1,#a);
 $R=midstr($$1,#a+strlen($$2),1000);
return $L;


置換:
 //置換関数$$1元文字列$$2検索文字列$$3置換文字列
 $$a=$$1;
 $$b=$$2;
 $$c=$$3;
  while (strstr($$a,$$b) >-1)
   {##n=strstr($$a,$$b);
   $$a=leftstr($$a,##n)+$$c+midstr($$a,##n+strlen($$b),1000);
   };

 return $$a;

Headcutter:
gofiletop;
beginsel;
golineend2;
cut;
call Clipper;
delete;
return;

ジャヌビアも自作辞書で検索します。

ジャヌビア

癌治療ガイドラインのHPから抜粋して自作辞書を作成。GISTで検索すると
一番下に2つヒットしています。

いちいち全辞書を作り直さなくても下図のようにDICを並列で追加して置いておけばiphone側で検索してくれます。

tesut

戻る

inserted by FC2 system