# ""が結果である # " def emb(name, map) f = open(name) s = "" st = 0 while (ch = f.getc) ch = sprintf("%c", ch & 0xff) if (ch == "<") st = 1 elsif ((st == 1) && (ch == "!")) st = 2 elsif ((st == 2) && (ch == "-")) st = 3 elsif ((st == 3) && (ch == "-")) st = 4 elsif ((st == 4) && (ch == "%")) st = 5 symbol = "" elsif ((st == 5) && (ch != "%")) symbol = symbol + ch elsif ((st == 5) && (ch == "%")) st = 6 elsif ((st == 6) && (ch == "-")) st = 7 elsif ((st == 7) && (ch == "-")) st = 8 elsif ((st == 8) && (ch == ">")) s = s + map[symbol] st = 0 elsif ((st == 5) && (ch == "\n")) s = s + ""[0 ..(st - 5 - 1)] + ch st = 0 elsif st == 0 s = s + ch else st = 0 end end return s end =begin sample: map = Hash.new("") map["TEST"] = "成功" print emb("emb.rb", map) =end