C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 72 を表示中)
■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); // 数値じゃなくて数字なんですよね?

#かなり想像をまじえて答えているので、あっているかどうかはあまり自信なし
返信 編集キー/


管理者用

- Child Tree -