市場調査

本当に使いたかった方の機能

続編



元々郵便物や荷物に簡単に磔られる簡易シールプリンタを買ったのでした。

自分用だよ?シール貼ってあるし(前回)。

はいはい



一般にバーコードのチェックサム計算するのって大変ですよね。関数電卓で計算すると何回も間違えてしまう。

なので自家需要から一発で生成できるのを書きました。

自家用原本の公開用抄本のコピペ



#!/usr/bin/ruby
#
#   [ The "Lazy Address Box" ] 公開版

#   -- Semi-handcrafted by asaone --
#    
#   経緯や開発状況:
#   2026年6月18日 例のやつに住所印刷を果たしていただこうかと。
#   2026年6月20日 前作を基にRuby がもうちょい前に出てくるようにしようかと。
#   2026年6月21日 一生懸命作ったかと。
#   2026年6月22日 雑な機能削除して公開版(v1.0)もできたかと。
#   
#   使用方法は下記取説のとおりなんとなく。
#   
#   取説:
#   =================================================
#   0. postal_code とpostal_mach を変える(その2点だけで網羅的に居所が特定できるという)。
#
#   1. $ which ruby は/usr/bin/ruby でありファイル文字列の起点を成す。ファイル全体は./lazyab.rb と定義。
#   
#   2. $ chmod u+x ./lazyab.rb を実行する。
#   
#   3. $ ./lazyab.rbを実行する。
#   
#   4. データやエラーが得られると考えられる。
#  =================================================
#  :取説以上
#

# 郵便番号数字7桁
postal_code     ='1820021'.to_s
# 丁目以降の番地等。長屋なら 1-2-30-404 とか
postal_mach     ='1-5-1'.to_s

def kigou_to_int(input_atai)
  henkan_table = %w(0 1 2 3 4 5 6 7 8 9 - A B C D E F G H)
  index = henkan_table.index(input_atai.to_s)

  if index
    index
  else
    puts '未対応(仕様)の文字が混在しておりませんこと?。'
    exit!
  end
end

def intlike_to_kigou(input_int)
  # 0から18に対応する記号をテーブル(配列)として定義
  henkan_table = %w(0 1 2 3 4 5 6 7 8 9 - A B C D E F G H)
  
  # 入力された値を整数(インデックス)に変換
  index = input_int.to_i

  # 0〜18の範囲内なら、テーブルから対応する文字を画面に出力
  if index.between?(0, 18)
    henkan_table[index]
  else
    puts 'これ、難しいエラーです。'
    exit!
  end
end

postal_bar = []
postal_bar[0]  = '('.to_s

i=0
j=0
(1..7).each do |i|
  postal_bar[i] = postal_code[i-1]
end
(8..20).each do |j|
  if ( postal_mach[j-8] == nil ) then
    postal_bar[j] = "D".to_s
  else
    postal_bar[j] = postal_mach[j-8]
  end
end
# postal_bar[]について:
# 21桁目[20] までをデータかDで埋めた。1桁目[0]は( 。

# チェックサム桁の22桁目[21] を計算。
k=0
postal_goukei = 0.to_i
(1..20).each do |k|
  postal_goukei += kigou_to_int( postal_bar[k].to_s )
end

postal_yuka = 0
csum_kigou  = 0
if ( postal_goukei.to_i.modulo(19) == 0.to_i ) then
  csum_kigou  = 0.to_i
else
  postal_yuka = postal_goukei.div(19).to_i * 19.to_i
  csum_kigou = 19.to_i + postal_yuka.to_i - postal_goukei.to_i
end
postal_bar << intlike_to_kigou("#{csum_kigou}")
# 22桁目(チェックサム)が定まった。

postal_bar[22]=")"
# 23桁目の) 。

m=0
# 一丁上がり。
(0..22).each do |m|
  print( postal_bar[m] )
end
puts()
 

はいはい



はい。