一般公開されている,こうした複数コメント付きの辞書をできるだけ情報損失なく Windows2000 で利用する方法はないか考えてみた.
方針として,コメントが複数の場合,一つにまとめることにする.
最低限,必用となるのが「オープン拡張辞書エディタ (Open Extended Dictionary Editor (OEDEditor))」.
窓の杜 - 【REVIEW】「Office IME 2010」の“オープン拡張辞書”を作成「オープン拡張辞書エディタ」
入手した辞書を OEDEditor から開く.
コメントのカラムが「コメント1」の 1 つだけならそのまま利用できる.
カラムが「コメント1~3」の 3 つある場合,その辞書は Windows2000 では正しく利用できないため,修正が必要となる(コメント2と3がすべて空だとしてもNG).
まずは簡単な対処法.
メニューバーから [編集] - [辞書のプロパティ] を開き,「コメントモード」を「表形式」から「複数行形式」に変更して [OK].
エディタ上ではコメント2・3が消失したように見えるが,情報は保持されている.ただし,この時点で「コメント2・3のタイトル」の情報は失われる.
[ファイル] - [名前を付けて保存] で「ファイルの種類」を「オープン拡張辞書(*.dctx)」(非圧縮)にして保存.
テキストエディタで開いてみれば,コメント2・3の情報が記録されているのが確認できる.
この辞書を Office IME 2010 で取り込むと,コメント1~3が一つのコメントにまとめられて表示されるようになる.
ただし,この方法だと1~3の各コメントが繋がった状態で表示されて,区別が付かなくなり見づらい.
あいだに「, 」などの区切り記号を挟むといった配慮をしたいときには,正規表現を使った置換ができる「EmEditor」のようなテキストエディタを利用して,ファイルを編集する必要がある.
Unicode、巨大ファイルにも対応する Windows用定番テキストエディター! - EmEditor(Emurasoft EmEditor JP 公式)
公開されているオープン拡張辞書は,圧縮形式 (*.dctxc) で配布されているのが一般的.
テキストエディタで編集できるようにするためにいったん OEDEditor で開き,非圧縮形式 (*.dctx) で保存し直す.
保存したファイルをテキストエディタで開くと,辞書内の各登録語は次のような書式で記述されている([TAB] はタブ,[CR] は改行).
[TAB]<ns1:DictionaryEntry>[CR]
[TAB][TAB]<ns1:PartOfSpeech>Noun</ns1:PartOfSpeech>[CR]
[TAB][TAB]<ns1:OutputString>ディスインテグレート</ns1:OutputString>[CR]
[TAB][TAB]<ns1:InputString>でぃぐ</ns1:InputString>[CR]
[TAB][TAB]<ns1:CommentData1>Disintegrate</ns1:CommentData1>[CR]
[TAB][TAB]<ns1:CommentData2>DIG</ns1:CommentData2>[CR]
[TAB][TAB]<ns1:CommentData3>一般魔法 Lv10 Lawful 光</ns1:CommentData3>[CR]
[TAB][TAB]<ns1:URL>http://server7.s151.xrea.com/souba/item/10/%E3%83%87%E3%82%A3%E3%82%B9%E3%82%A4%E3%83%B3%E3%83%86%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%88</ns1:URL>[CR]
[TAB][TAB]<ns1:Priority>100</ns1:Priority>[CR]
[TAB][TAB]<ns1:ReverseConversion>true</ns1:ReverseConversion>[CR]
[TAB][TAB]<ns1:CommonWord>false</ns1:CommonWord>[CR]
[TAB]</ns1:DictionaryEntry>[CR]
なお,コメント1~3やリンクがない場合は,タグを含む該当する行自体が無い.
コメントの有無に応じて,以下の置換処理を施す.
コメント1+コメント2+コメント3 → コメント1に統合
コメント1+コメント2 or コメント1+コメント3 or コメント2+コメント3 → コメント1に統合
コメント2 or コメント3のみ → コメント1に変更
コメントなし or コメント1のみ → 何もしない
コメント行を正規表現すると次のようになる(コメント内容を後方参照できるように記述).
\t\t<ns1:CommentData[1-3]>(.+)</ns1:CommentData[1-3]>\n
これを踏まえて,まずコメントが 3 つの場合を以下のように置換する(区切り記号はカンマ).
検索文字列: \t\t<ns1:CommentData1>(.+)</ns1:CommentData1>\n\t\t<ns1:CommentData2>(.+)</ns1:CommentData2>\n\t\t<ns1:CommentData3>(.+)</ns1:CommentData3>\n
置換文字列: \t\t<ns1:CommentData1>\1, \2, \3</ns1:CommentData1>\n
次にコメントが 2 つの場合を以下のように置換する.
検索文字列: \t\t<ns1:CommentData[12]>(.+)</ns1:CommentData[12]>\n\t\t<ns1:CommentData[23]>(.+)</ns1:CommentData[23]>\n
置換文字列: \t\t<ns1:CommentData1>\1, \2</ns1:CommentData1>\n
残っているのは,コメント2 or コメント3のみの場合なので,置換は簡単だ.
検索文字列: CommentData[23]
置換文字列: CommentData1
以上で,辞書内のコメントは全てコメント1のみに統合される.
置換ミスがないか確認するために,保存したファイルを OEDEditor から開いてみて,正常に読み込めれば問題ない.
メニューバーから [編集] - [辞書のプロパティ] を開き,「コメントモード」を「表形式」から「複数行形式」に変更して [OK],圧縮形式で保存して完了.
ただし,コメント自体に正規表現のメタ文字(下記)を含む場合は,別途対応が必要になる.
.(ピリオド) |(パイプ) *(アスタリスク) ?(クエスチョンマーク) +(プラス)
(, )(パーレン) {, }(ブレイス) [, ](ブラケット) ^(キャレット) $(ドル) \(円)
参考資料「EmEditor 使い方: 正規表現構文」
0 コメント:
コメントを投稿