パスワードを忘れた? アカウント作成
11896433 journal
日記

ujimushiの日記: 車輪の再発明 bushu.rev→bushu.expand(旧バージョン)

日記 by ujimushi

最新の一つ手前のソースの「tcode-bushu-expand-all」をrubyで書いてみました。下のソースをコピペして 「bushu.rev2expand.rb」とかで保存して,「ruby bushu.rev2expand.rb bushu.rev >bushu.expand」 ぐらいで旧バージョンの「tcode-bushu-expand-all」の変換が再現できると思います。

#!/usr/bin/ruby
# coding: utf-8

# 部首テーブルを分解する定義
def henkan(str, tbl)
  rv = ''
  str.each_char { | c | rv += (tbl[c] ? tbl[c] : c) }
  rv = henkan(rv, tbl) if str != rv
  rv
end

# bushu.revを全行読み込み
lines = IO.readlines(ARGV[0])

# 部首テーブル定義
h = {}
lines.each do |str|
  h[str[0]] = str[1, 4].chomp unless h[str[0]]
end

# 未処理の文字を部首に分解して出力(重複があると二つ目以降を無視)
flag = {}
lines.each do |str|
  printf("%s%s\n", str[0], henkan(str[1, 4].chomp, h)) unless flag[str[0]]
  flag[str[0]] = true
end

最新バージョンはbushu.help対応のコードが入ってるのでどんな動きか ぼちぼち解析してみたいですが,仕事が忙しくなってきたのでいつになることやら という感じです。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

Stableって古いって意味だっけ? -- Debian初級

読み込み中...