[#46340] ASR 1.8.7 同梱の exerb で生成したプログラムが enumerator を見つけられない — "(株)ネットフォレスト 植田裕之" <ueda@...>

植田と申します。

10 messages 2009/09/01
[#46344] Re: ASR 1.8.7 同梱の exerb で生成したプログラムが enumerator を見つけられない — arton <artonx@...> 2009/09/01

artonです。

[#46345] Re: ASR 1.8.7 同梱の exerb で生成したプログラムが enumerator を見つけられない — "NARUSE, Yui" <naruse@...> 2009/09/01

成瀬です。

[ruby-list:46411] 再送;;Rubyに対する文字コード指定方法について

From: eiichi_maekawa@...
Date: 2009-09-24 22:41:00 UTC
List: ruby-list #46411
昨日(9/24)発信しましたが、サーバからの発信が確認できませんでしたの
で、再送します。

前川です。
基本敵な質問ですが、Rubyに文字コードを教えるため、
シフトJISの場合、#! d:/ruby/bin/ruby.exe -Ks
と、記述しますが、

本体から requireで紐付けしたソース(プライベートのクラス)にも、
-Ksを記述すると、エラーが生じます。

本体側も、紐付けしたソース側も、文字コードを設定する場合は、-Ks等の
指定が必要だと思いますが、エラーになるのは、どうしてでしょうか?
何か、設定が悪いのでしょうか?教えてください。

ソースコーディングと実施結果は、以下です。
(冗長になりますが、よろしくお願いします。)

1.コーディング(クラスを呼ぶ側)
#!D:/Ruby/bin/ruby.exe #←-Ks を追加するとえらーになる。require側でも-Ksと設
定しているため???

require 'kconv'
require 'nkf'
require 'D:/Apache2.2/htdocs/ruby_prg/ruby19check/myclass' #MyClass 変換メ
ソッド等

# 試験データ
# 文字→HEXへ変換するためのデータ

data1 = '船海システムG' # 26バイトの '91448a43835683588365838047'に変換する
data2 = 'TEST' # 8バイトの '54455354'に変換する
data3 ='船'
data4 ='kaisya会社123重厚重工業・・あaア  /\¥'
data5 ='kaisya会社123重厚重工業あaイ  '
data6 ='会社'
data7 = 'C:/Apache2.2/htdocs/qmsPotalShip/confirmation/sjisコード表
textConversion用.html'
data8 = "12_FBSYS_不具合情報入力-所内工事(速報) 23船証第三確認者の確認画面
03:コメント記入前:船証.png"
puts '文字からHEXへ変換'

puts data8 + " → " + MyClassText.text_to_hex(data8)


hexData1 = '91448a43835683588365838047'
hexData2 = '54455354'
hexData3 = '9144'
hexData4 = '6b616973796189ef8ed03132338f648cfa8f648d488bc682a061b1'
hexData5 = '6b616973796189ef8ed03132338f648cfa8f648d488bc682a061'
hexData6 = '89ef8ed0'
hexData7 =
'433a2f417061636865322e322f6874646f63732f716d73506f74616c536869702f636f6e6669726d6174696f6e2f736a69738352815b8368955c74657874436f6e76657273696f6e97702e68746d6c'
hexData8 =
"31325f46425359535f95738bef8d878fee95f193fc97cd2d8f8a93e08d488e962891ac95f12920323391448fd891e68e4f8a6d94468ed282cc8a6d944689e696ca3033814683528381839383678b4c93fc914f814691448fd82e706e67"
hexData9 = "8e4f9548814091be9859"
puts "HEXから文字変換"
puts hexData9 + " → " + MyClassText.hex_to_text(hexData9) #←requireのコード
を呼ぶ

puts "文字→HEX→文字"
data = MyClassText.text_to_hex(data8)
puts data8 + " → " + data + " → " + MyClassText.hex_to_text(data)

2.コーディング(クラス側)
#!D:/ruby/bin/ruby.exe -Ks #←SJISを設定

##!C:/Ruby/bin/ruby.exe -Ks

print "Content-Type: text/html\n\n"

require 'kconv' # Stringの日本語関連メソッド
require 'nkf' # 漢字関係 Network Kanji code conversion Filter version 1.7
require 'cgi' # CGI プログラムの支援ライブラリ
require 'mysql' #MySQLライブラリ
#require "rubygems" # ライブラリ管理ツール
#require "dbi"


CODES = {
  NKF::JIS      => "JIS",
  NKF::EUC      => "EUC",
  NKF::SJIS     => "SJIS",
  NKF::BINARY   => "BINARY",
  NKF::UNKNOWN  => "UNKNOWN(ASCII)",
}



class MyClassText

  # 文字を16進数の文字コードに変換する
  def self.text_to_hex(data)
    data.unpack('H*')[0]
  end

  # 16進数の文字コードを文字に変換する
  def self.hex_to_text(data)
    data.gsub(/../){|c| c.hex.chr}
  end

  #string内の特定文字列を、指定した文字で置き換える。
  #戻り値;置き換えた文字列
  #        該当する文字列が存在しない場合は、元の文字列を返す
  def self.string_change(data,org,change)
    data.gsub( org, change )
  end

3.エラーメッセージ

D:\Apache2.2\htdocs\ruby_prg\ruby19check>ruby -r debug myclassTextTest.rb
Debug.rb
Emacs support available.

myclassTextTest.rb:14: syntax error
data5 ='kaisya会社123重厚重工業あaイ  '
                                  ^
myclassTextTest.rb:14: Invalid char `\262' in expression
myclassTextTest.rb:15: syntax error
data6 ='会社'
            ^
myclassTextTest.rb:16: syntax error
data7 = 'C:/Apache2.2/htdocs/qmsPotalShi...
          ^
myclassTextTest.rb:16: unknown regexp options - htdc
myclassTextTest.rb:16: syntax error
myclassTextTest.rb:18: syntax error
puts '文字からHEXへ変換'
                       ^
myclassTextTest.rb:23: syntax error
hexData1 = '91448a43835683588365838047'
                 ^
myclassTextTest.rb:24: syntax error
hexData2 = '54455354'
                    ^
myclassTextTest.rb:25: syntax error
hexData3 = '9144'
                ^
myclassTextTest.rb:26: syntax error
hexData4 = '6b616973796189ef8ed03132338f648cfa8f648d488bc682a061b1'
             ^
myclassTextTest.rb:27: syntax error
hexData5 = '6b616973796189ef8ed03132338f648cfa8f648d488bc682a061'
             ^
myclassTextTest.rb:28: trailing `e' in number
hexData6 = '89ef8ed0'
               ^
myclassTextTest.rb:28: syntax error
hexData6 = '89ef8ed0'
               ^
myclassTextTest.rb:29: syntax error
hexData7 = '433a2f417061636865322e322f6874646...
               ^
myclassTextTest.rb:29: unterminated string meets end of file

D:\Apache2.2\htdocs\ruby_prg\ruby19check>ruby -r debug myclassTextTest.rb
Debug.rb
Emacs support available.

myclassTextTest.rb:3:require 'kconv'
(rdb:1) c
Content-Type: text/html

文字からHEXへ変換
12_FBSYS_不具合情報入力-所内工事(速報) 23船証第三確認者の確認画面03:コメン
ト記入前:船証.png →
31325f46425359535f95738bef8d878fee95f193fc97cd2d8f8a93e08d488e962891ac95f12920323391448fd891e68e4f8a6d94468ed282cc8a6d944689e696ca3033814683528381839383678b4c93
fc914f814691448fd82e706e67
HEXから文字変換
8e4f9548814091be9859 → 三菱 太郎
文字→HEX→文字
12_FBSYS_不具合情報入力-所内工事(速報) 23船証第三確認者の確認画面03:コメン
ト記入前:船証.png →
31325f46425359535f95738bef8d878fee95f193fc97cd2d8f8a93e08d488e962891ac95f12920323391448fd891e68e4f8a6d94468ed282cc8a6d944689e696ca3033814683528381839383678b4c93
fc914f814691448fd82e706e67 → 12_FBSYS_不具合情報入力-所内工事(速報) 23船証
第三確認者の確認画面03:コメント記入前:船証.png


4.正常時(syntaxエラーは、一切なし)

D:\Apache2.2\htdocs\ruby_prg\ruby19check>ruby -r debug myclassTextTest.rb
Debug.rb
Emacs support available.

myclassTextTest.rb:3:require 'kconv'
(rdb:1) c
Content-Type: text/html

文字からHEXへ変換
12_FBSYS_不具合情報入力-所内工事(速報) 23船証第三確認者の確認画面03:コメン
ト記入前:船証.png →
31325f46425359535f95738bef8d878fee95f193fc97cd2d8f8a93e08d488e962891ac95f12920323391448fd891e68e4f8a6d94468ed282cc8a6d944689e696ca3033814683528381839383678b4c93
fc914f814691448fd82e706e67
HEXから文字変換
8e4f9548814091be9859 → 三菱 太郎
文字→HEX→文字
12_FBSYS_不具合情報入力-所内工事(速報) 23船証第三確認者の確認画面03:コメン
ト記入前:船証.png →
31325f46425359535f95738bef8d878fee95f193fc97cd2d8f8a93e08d488e962891ac95f12920323391448fd891e68e4f8a6d94468ed282cc8a6d944689e696ca3033814683528381839383678b4c93
fc914f814691448fd82e706e67 → 12_FBSYS_不具合情報入力-所内工事(速報) 23船証
第三確認者の確認画面03:コメント記入前:船証.png

D:\Apache2.2\htdocs\ruby_prg\ruby19check>

以上
***********************************
  三菱重工業㈱長崎造船所
  船舶品質保証部 品質保証グループ
       前川
  TEL:5651 外線;095-828-5651
***********************************


In This Thread

Prev Next