»ä¤¬¹¥¤ß¤È¤¹¤ëÁáÀî¤ÏÈÖ¹æÉÕ¤±¤«¤éISBN¤¬¤ï¤«¤ë¡£
¤Ñ¤Ã¤ÈȽ¤é¤Ê¤¤¤Î¤Ï¡¢ISBNºÇ¸å¤Î°ì·å¡¢¤Ä¤Þ¤ê¡¢¥Á¥§¥Ã¥¯¥Ç¥£¥¸¥Ã¥È¤ÎÉôʬ¡£
¡Ê
ISBN¤Ë¤Ä¤¤¤Æ¤ÏÍΤ¤µ¤ó¡Ë
¼ê¸µ¤ËËܤ¬¤Ê¤«¤Ã¤¿¤ê¡¢¸Å¤¤ËܤÀ¤Ã¤¿¤ê¤¹¤ë¤È½ñ¤¤¤Æ¤Ê¤«¤Ã¤¿¤ê¤Ç¡¢
ISBN¤òÄ´¤Ù¤ë½ê¤Ç¤Þ¤ºÂçÊѤÀ¤Ã¤¿¤ê¡£
¤È¤¤¤¦¤³¤È¤Ç bookstore.rb ¤ò¤¤¤¸¤í¤¦¤È¤·¤¿¤Î¤À¤¬¡¢
ruby¤ÎÀµµ¬É½¸½¤¬¤ï¤«¤é¤Ê¤¤¤ï¤«¤é¤Ê¤¤¡£
¤ï¤«¤é¤Ê¤¤¤Î¤ÏÀµµ¬É½¸½¤À¤±¤¸¤ã¤Ê¤¤¤³¤È¤â»×¤¤ÃΤ롣
¤ä¤Ã¤ÑËܤ¤¤ë¤«¡©
È´¿è
BOOKSTORE = Regexp::compile(/[\(¡Ê]ISBN(\d-[\d-]{9}[-]?[\w]?)[\)¡Ë]/)
def bookstore(str, type)
case type
when :P, :UL, :DL
str.gsub!(BOOKSTORE){
isbn = $1
isbn2 = isbn.delete('-')
if isbn2 =~ /^4/
data = 11 - ((((isbn2[0] - 48) * 10) + ((isbn2[1] - 48) * 9) + ((isbn2[2] - 48) * 8) + ((isbn2[3] - 48) * 7) + ((isbn2[4] - 48) * 6) + ((isbn2[5] - 48) * 5) + ((isbn2[6] - 48) * 4) + ((isbn2[7] - 48) * 3) + ((isbn2[8] - 48) * 2)) % 11)
dgt = "0"
dgt[0] = data + 48
if data == 10
dgt = "X"
end
if data == 11
dgt = "0"
end
if isbn2[9,10] != dgt
print "WAR; ISBN-error;" + isbn2 + "\n"
#¤¿¤À¤Î´Ö°ã¤¤¤Ê¤éÃÖ´¹¡¢ÉÔ¤ʤéÄɲäȤ¤¤¦É÷¤Ë²þÊѤ¬É¬Í×
¡¡¡¡¡¡¡¡¡¡¡¡#º£¤Ï¤È¤Ë¤«¤¯Äɲ䷤Ƥë¤À¤±
isbn << "-" << dgt
isbn2 << dgt
print "WAR; ISBN-change;" + isbn2 + "\n"
end
t = '¡Ú '
¤³¤ì¤Ç
(ISBN4-15-011337)
¤È½ñ¤¤¤Æ¤â
(ISBN4-15-011337-8)
¤ÈÊä´°¤·¤Æ½èÍý¤·¤Æ¤¯¤ì¤Æ¤ë¤Ï¤º¡£
¤ó¡¢¤¢¤ì¡©¡¡¤¦¤Þ¤¯¤¤¤«¤Ê¤¯¤Ê¤Ã¤Æ¤ë¡£
¤Ê¤ó¤Ç¤µ¤Ã¤¤Ï¤¦¤Þ¤¯¤¤¤Ã¤¿¤ó¤À¡©