• 締切済み

ヤマト急便のチェックデジットの計算方法

クロネコヤマトのメール便で、バーコードを作成したいのですが、チェックデジットの計算方法が解りません。どなたかご存知であれば、お教え下さい。宜しくお願いします。

みんなの回答

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

ヤマト運送のメール便のバーコードはNW-7ですか? NW-7でモジュラス16の場合はチェックデジットは必要ありません。しかし求める場合はキャラクタコードが必要になります。 キャラクタは0~9までの数字・6個の特殊記号(-,$,:,/,.,+)・4個のスタート・ストップコード(A~D)がそうです。 数字0~9はそのままで コード 値  -  10  $  11  :  12  /  13  .  14  +  15  A  16  B  17  C  18  D  19 がNW-7のキャラクタコード値になります。 これを元にチェックデジット(チェックキャラクタ)を求めます。 データが例えばA12345Bの場合 各配列を分割してキャラクタコードに当てはめます。 Aは16・数字はそのまま・Bは17になるので全て足します。 合計をモジュラスから引きます。その答えをキャラクタコードから参照する。 16+1+2+3+4+5+17=48 48を16で割り余りを求める 48/16=3 この場合余りがないので余りがなければ0がチェックデジットの値。これをストップコードの前に入れてA123450Bになります。 A37859Bの場合16+3+7+8+5+9+17=65 65/16=4と余り1 16-1=15 15はキャラクタの+なのでしトップコードの前に入れる。A37859+Bになります。 これが完全なコードです。 NW-7であってもチェックデジットのモジュラスによって算出方法が変わります。

sa-chi
質問者

お礼

ご回答ありがとうございます。 ヤマトさんに問い合わせたところ、仕様書が送られてきました。お騒がせしてすみませんでした。 ちなみに計算方法は「セブンチェック方式」でした。 「セブンチェック」とは下位2桁目より各桁に対して以下の様に重み(ウェイト"46231546231")を乗じ、その合計を7で除算した余り一桁を最終桁(スタートストップコード除く)として利用する方式。

関連するQ&A