■41830 / ) |
Re[1]: objectのテキスト変換方法教えてください。 |
□投稿者/ よねKEN (416回)-(2009/09/30(Wed) 23:43:38)
|
■No41772 (裕猫 さん) に返信 > サーバーWindows2000+Oracle10g(RAW)SIJSテキスト16バイト 7バイト英数字、7バイト英数字、2バイト数字という構成になっています。 > 7バイト英数字、7バイト英数字、2バイト数字はオブジェクトとしてとれているようですが、それをlabel1に表示するところでつまっています。
> byte[] byteArray = Encoding.Unicode.GetBytes(dr[0].ToString()); > label1.Text = Encoding.Unicode.GetString(byteArray);
このコードが仮に正しいとすると label1.Text = dr[0].ToString(); とするだけでよいはずです。
しかし、結果は、
> というコードを書きましたが、label1にはSystem.Byte[]という文字しか表示されません。
ということなので、dr[0]の中身はbyte配列だということだと思います。
> サーバーWindows2000+Oracle10g(RAW)SIJSテキスト16バイト 7バイト英数字、7バイト英数字、2バイト数字という構成になっています。
この部分の説明の意味を私はよく理解できていないのですが、 これがそのbyte配列の中身の構成だとしたら、以下のような感じで切り出せるのでは?
byte[] byteArray = (byte[])dr[0]; Encoding SJIS = Encoding.GetEncoding("Shift_JIS"); string _SJISテキスト16バイト = SJIS.GetString(byteArray, 0, 16); string _7バイト英数字1 = SJIS.GetString(byteArray, 16, 7); string _7バイト英数字2 = SJIS.GetString(byteArray, 23, 7); string _2バイト数字 = SJIS.GetString(byteArray, 30, 2); // 数値じゃなくて数字なんですよね?
#かなり想像をまじえて答えているので、あっているかどうかはあまり自信なし
|
|