郵便番号検索(Dashboard Widget)の郵便番号データを加工する

郵便番号検索(Dashboard Widget)は、最初のリリースが2005/10/25となっていますから、かなり古いWidgetです。
郵便番号からでも住所の一部からでも検索でき、検索結果の郵便番号や住所をクリックするとクリップボードにコピーされます。
以前は、郵便局の番号検索サイトを使って自動検索するツールやスクリプトなどを書いたりもしていたのですが、郵便局の番号検索サイトのアドレスが変わったり、仕様が微妙に変化したりで、結局更新が滞ることになってしまい、番号データをローカルで持つ郵便番号検索(Dashboard Widget)に敵わないので、結局更新をやめてしまった記憶があります。
若干入力に対するレスポンスで難があるものの便利な郵便番号検索(Dashboard Widget)ですが、郵便番号データの更新があまり早くないのが残念でした。
そこで、数年前から、郵便番号データの更新に合わせて、郵便番号検索(Dashboard Widget)内のデータ更新を勝手にやってしまうことにしました。個人的な利用に限っては許される範囲の加工だと思います。
郵便番号データは、ここから入手できます。
郵便番号検索(Dashboard Widget)のバンドルパッケージを開いたところが次の図で、赤線で囲んだ2つのファイルが住所データです。今回は、‘AddressData.tsv’(全国版)を新しい郵便番号データに置き換えます。

572eb

‘AddressData.tsv’と郵便番号データ(全国版)のテキストデータ‘KEN_ALL.CSV’を並べてみると構造の違いが分かるでしょう。

899cd

‘KEN_ALL.CSV’はcsvファイルとなっていて、エンコーディングはS-JISです。カンマで区切られたテキストファイルを、例えばエクセルで読み込んでみると、15列(項目)に分かれることが分かります。郵便番号検索(Dashboard Widget)が必要としている(利用している)項目は、3から9列(項目)までの7つの列(項目)だけです。

以下、必要な項目の抜き出しを、TextWrangler.appでやってみます。
先ず、3と4,5,6列、7,8,9列と3グループにタブで区切って、分けて抜き出します。
もう少しスマートに書けるのですが、ここは分かりやすく、

検索:^([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),.+$
置換:\3\t\4\5\6\t\7\8\9

次に、読みにくいので、ダブルクォーテーションを削除します。

検索:”
置換:

次に、読みと住所データの順序を入れ替えます。

検索:^(.+?)\t(.+?)\t(.+?)$
置換:\1\t\3\t\2

次に、郵便番号データの7桁の数字にハイフンを挿入します。

検索:^(\d\d\d)(\d\d\d\d)
置換:\1-\2

これで終わりです。(住所の読みの部分は、気になるようでしたら、半角カタカナから全角カタカナに変換するといいでしょう。mi.appでは文字種変換を編集メニューに持っていますが、TextWrangler.appは当然持っていませんので、自作のReplaceString_ClipDIC_TW.scptを使いましたが、12万行処理できました)

最後に、ドキュメントのエンコーディングをUTF-8、行末コードをLFに設定して、ファイル名を‘AddressData.tsv’として、郵便番号検索(Dashboard Widget)のバンドルパッケージ内の同名のファイルと置き換えます。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中