前編
https://qiita.com/kairi-sakusaku/items/55918ecb323e57b34758
からの続きです。
#更にバッチで加工
よくよく考えたらプログラム組まずに出来るとこまでバッチファイル使えば良くね?
と思いたち、前回のデータを更に加工する形にしたのがこちら。
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使用歴のほうが長い)ので、そっちで処理。
左から順番に組み込んだ関数を説明してくと
##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まで縮小しました。