locked
Silverlight 4 で全角半角変換をするには(StrConvの代替) RRS feed

  • 質問

  • 今までずっとStrConvに頼ってきましたので,Silverlightで使えないのは私にとっては致命的なのです。

    一文字ずつテーブルを作ることも考えましたが,半角の濁点半濁点の対応や,MAC OS XとWindowsの違いなど,考慮する事項がかなり多く二の足を踏んでおります。

    何か良い方法はないものでしょうか?

    2010年11月5日 12:03

回答

  • StrConv()の実体は、Microsoft.VisualBasic.Stringsクラスのメンバー なのですが、SilverlightのStringsクラス からはStrConv()が省かれていますね。

    VB User1さんもわかっておられるようですが、StrConv()はそれだけの処理を行うためたぶんテーブルも持っているんでしょう。StrConv()の重要度と配布されるバイナリサイズとを比較した結果、意図的に省かれたのだと思います。

    というわけでたぶん無理です。1つヒントを出すと、.NET 4などのStrConv()を実際に呼び出して、どの文字がどの文字に変換されたのか、それを元にテーブルを作れば(ソースコードを生成すれば)少しは救われるかと。

    • 回答の候補に設定 山本春海 2010年11月22日 8:23
    • 回答としてマーク 山本春海 2010年11月25日 8:49
    2010年11月6日 0:10

すべての返信

  • 必ずクライアントサイドで行わなくてはならない処理でしょうか?サーバーサイドというか、IISのWebサービス側では普通に.NET Frameworkが使えますので、入力側では行わず、サーバー側でやるという方式にはできないでしょうか?
    Thanks, K.Kamegawa (http://d.hatena.ne.jp/kkamegawa/)
    2010年11月5日 15:58
  • コメントいただき,ありがとうございます。

    なるほど。Webサービスを作れば確かにできそうですね。

     

    実は,サーバーに配置しない状態でも使いたいと考えておりまして,どちらかというとマルチプラットフォームで動作するクライアントアプリケーションのようなものを想定しております。

    出来る事ならば,Silverlight単体で解決したいと思っております。

    2010年11月5日 22:11
  • StrConv()の実体は、Microsoft.VisualBasic.Stringsクラスのメンバー なのですが、SilverlightのStringsクラス からはStrConv()が省かれていますね。

    VB User1さんもわかっておられるようですが、StrConv()はそれだけの処理を行うためたぶんテーブルも持っているんでしょう。StrConv()の重要度と配布されるバイナリサイズとを比較した結果、意図的に省かれたのだと思います。

    というわけでたぶん無理です。1つヒントを出すと、.NET 4などのStrConv()を実際に呼び出して、どの文字がどの文字に変換されたのか、それを元にテーブルを作れば(ソースコードを生成すれば)少しは救われるかと。

    • 回答の候補に設定 山本春海 2010年11月22日 8:23
    • 回答としてマーク 山本春海 2010年11月25日 8:49
    2010年11月6日 0:10
  • コメントいただき,ありがとうございます。

    佐祐理さんのおっしゃるとおり,テーブルを作って変換する事が一番良い方法のような気持ちになってきました。

    その方法で実装しようと思います。

    ありがとうございました。

    2010年11月6日 1:00
  • こんにちは、VB User1 さん。

    MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。

    佐祐理 さんからの情報が参考になったようでしたので、私のほうで回答としてマークさせていただきました。
    佐祐理 さん、アドバイスありがとうございました。

    今後とも、MSDN フォーラムをよろしくお願いいたします。
                                                                   
    マイクロソフト株式会社 フォーラム オペレーター 山本 春海

    2010年11月25日 8:52