2009/11/07

numerical.rb

www.midore.net/daybook/2006/5-9/1159081162.html
を書き直し。

% cat numerical.rb

  1 # coding: utf-8
  2 # 2009-11-06
  3 
  4 str =<<EOF
  5 <?xml version="1.0" encoding="UTF-8"?>
  6 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  7 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
  8 <head>
  9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
 10 <title>数値文字参照</title>
 11 </head>
 12 <body>
 13 EOF
 14 
 15 n = ARGV[0]
 16 abort unless n
 17 abort if /\D/.match(n)
 18 (n.to_i..n.to_i+5).step{|x|
 19     str << "<p>#{x} => &##{x};</p>"
 20 }
 21 str << "</body>\n</html>"
 22 filename = 'numerical.html'
 23 # save file
 24 File.open(filename, 'w:utf-8'){|f| f.print str}
 25 # only OS X
 26 system "open #{filename}"


表示する数値文字は引数として与える数字から5を足した数までに制限している。line.18
数字の範囲は得に定めていないので、与える数字によってはすべて空欄にもなりうる。

% ruby19 numerical.rb '1100'


を実行すると実行ファイルと同じ階層に'numerical.html' ファイルが保存される。
OS X の場合、最終行でブラウザが 'numerical.html' を開く。
与えた数に対応する数値文字がブラウザに表示される。

1100 => ь

1101 => э

1102 => ю

1103 => я

1104 => ѐ

1105 => ё