2010年5月27日木曜日

バーコードリーダーを購入の巻

当店は出荷の時に発送案内メールを出して、伝票番号(追跡番号)がある場合は、その番号をお知らせするのですが、番号を今まではいちいち手入力をしておりました。バーコードリーダーとかあったら便利なんだけどなと毎度毎度思っておりまして、しかも手入力は往々にして入力間違いをしてしまい、お客様にご不便な思いをさせてしまうという大問題がありました。

そこで本日、名古屋は大須の第一アメ横ビル内、奥の方にある委託品を売っているロッカーが並んでいるところで中古品を探してきました。


お値段は何と2500円也。東北リコー製 RT3660USB という型番です。
説明書も何も付いていないので、WEBで探してみましたが、東北リコーのバーコードリーダー部門がすでに売却されており、何の情報も得られませんでした。

USBにつなぐときちんとバーコードを読み込みますので、まあ説明書とかはいいんですけど、意外なところで問題発生。


上の画像はレターパック350の伝票番号部分バーコードですが、これを読み込むと

a326004645632a

なぜか「a」という文字が番号の前後に付加されてしまいます。


さらに上の画像は、代金引換郵便の伝票番号部分です。
こちらの番号をリーダーで読み込むと

c86610663484c

「c」という文字が番号の前後に付加されます。伝票にもCが付いていますけど、Cは追跡をかけるときに不要です。



西濃はどうかというと、

a3772180640a

こちらも「a」という文字が番号の前後に付加されます。

色々試してみましたが、バーコードリーダーの問題ではないようで、運送関連の伝票番号は、a とかc とかの文字が前後に付加されるようです。しかしEMSの伝票番号にはありませんでした。


一体何の意味があるのでしょうか?とにかくa とかcは不要ですので、発送案内メールを出す秀丸メールの自作マクロ(スクリプト)をいじって、バーコードリーダーの読み取り時に a とかcを除去する事にいたしました。使った外部DLLはht_tools.dll(リンク)のTrimStrという関数で実際には下のような感じ。

$ShippingNumber = input("伝票番号を入力");
//ここでバーコードリーダーで読み取り
loaddll Hidemarudir + "\\ht_tools.dll";
//DLL読み込み
$ShippingNumber = dllfuncstr("TrimStr", $ShippingNumber, "a");
//読み込んだ伝票番号両端の"a"を除去
freedll;
//DLLをメモリから解放

しかしながら、皆さん色々便利な機能を考えるものだなと、心底感心したのでした。