0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

製作中新言語「B012(ボルズ)」組込み用辞書作成(後編)

Last updated at Posted at 2018-10-16

前編
https://qiita.com/kairi-sakusaku/items/55918ecb323e57b34758
からの続きです。

#更にバッチで加工

よくよく考えたらプログラム組まずに出来るとこまでバッチファイル使えば良くね?
と思いたち、前回のデータを更に加工する形にしたのがこちら。

gosei.bat
findstr /b "あ" a.txt >agyo.txt
findstr /b "い" i.txt >>agyo.txt
findstr /b "う" u.txt >>agyo.txt
findstr /b "え" e.txt >>agyo.txt
findstr /b "お" o.txt >>agyo.txt

データを見たら、ひらがな行以外はタブで改段されてるので、それをすべて切り捨てて
あ行ならあいうえおで一括りにする、という方法です。

頭に記号がついてる文字は取りこぼすことになるが、そこは無視で。

こうして出来上がった各五十音行のテキストを、さらにコマンドプロンプトで

type *.txt >total.txt

として一つのファイルに纏める。

ここまででファイルサイズが1MBちょっと、6万行。だいぶ小さくなりました。

#最後の加工はexcel関数で

ここまでサイズが小さくなったら、自分的にはプログラム組むよりexcel関数で加工したほうが早い(プログラム歴よりexcel使用歴のほうが長い)ので、そっちで処理。

キャプチャ2.PNG

左から順番に組み込んだ関数を説明してくと
##B列

=PHONETIC(A2)

ひらがな→かたかな変換

##C列

=FIND("《",B2)

「《」の含まれてる位置を検索(見つからなければエラー)

##D列

=IF(ISERROR(C2),B2,LEFT(B2,C2-1))

B列でエラーが出てるばあい、C列のデータをそのまま出力。
それ以外(《含み)は、その位置までの文字を切り出し。

##E列

=IF(D2=D3,"",D2)

重複行があった場合、空文字。

##F列

=IF(LEN(E2)>6,"",E2)

6文字より大きかったら、空文字。

あとは出来上がったデータを空行以外をテキストにコピーアンドペーストして必要なデータは完成。

サイズも3万行、398KBまで縮小しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?