Yuta Kawai
yutak****@gmail*****
2012年 2月 21日 (火) 14:12:53 JST
はじめまして、川合と申します。 標題の件ですが、Exerb で作成したプログラムの不具合を発見したので、 投稿させていただきます。 Integer.to_s(16)を繰り返すプログラムですが、 MSWIN32版Rubyでは正常に動作しますが、 Exerbで変換して実行すると、Integer.to_s(16)が突然期待しない文字列に変わってしまうというものです。 少し長くなりますが、環境、再現コード、実行結果を記載します。 色々試行錯誤してみましたが、下のコードに改行を足して、 コードの行数が奇数にするとエラーが起きないという、 不思議なことになっています…… 自分でもこれからExerbのソースを読んでみようと思いますが、 バグなのか仕様なのか、僕の環境やコードに問題があるのか、 それだけでもお分かりでしたら、ご回答いただけたら幸いです。 よろしくお願いします! 川合悠太 yutak****@gmail***** 【環境】 Windows XP Service Pack 3 ruby 1.8.7 p357 mswin32 Exerb 5.4.0 【コード test.rb】 START = 0xFF000000 MAX = 0xFF00FFFF (START..MAX).each{|num| str1 = num.to_s(16) str2 = num.to_s(16) str3 = num.to_s(16) if str1 != str2 || str1 != str3 puts str1 puts str2 puts str3 exit(1) end } puts "finished" 【レシピファイル test.exy】 # Generated by mkexy # on 2012-02-21 13:24 general: startup: test.rb core: cui kcode: none file: test.rb: 【実行】 C:\kawai\work>ruby test.rb finished C:\kawai\work>mkexy test.rb finished C:\kawai\work>test.exe be0150 ff00031b ff00031b C:\kawai\work> -------------- next part -------------- HTMLの添付ファイルを保管しました... Download