| ■No102005 (WebSurfer さん) に返信 > ■No102004 (たかし さん) に返信 > >>今 resultの中に "3646 3142 3036 3137 3031 3031 0000\r\0"と入っているのですが >>それを"6F1B06170101"と表示させたいのですがどう書けばよろしいでしょうか > > どういう変換法則があるのですか?
分かりにくくてすみません 今現在変換させているのは下記のようにしています
for (int i = 0; i < 8; i++)//0-7 { string sendMsg = "RDS EM00" + i + ".U 1" + '\r';
Encoding enc = Encoding.ASCII; byte[] sendBytes = enc.GetBytes(sendMsg);
netstream.Write(sendBytes, 0, sendBytes.Length); Console.WriteLine(sendMsg);
System.IO.MemoryStream ms = new System.IO.MemoryStream(); byte[] resBytes = new byte[256]; int resSize = 0;
do { resSize = netstream.Read(resBytes, 0, resBytes.Length); if (resSize == 0) { messagebox("サーバーが切断しました。"); break; } ms.Write(resBytes, 0, resSize); } while (netstream.DataAvailable || resBytes[resSize - 1] != '\n');
string resMsg = enc.GetString(ms.GetBuffer(), 0, (int)ms.Length); ms.Close();
resMsg = resMsg.TrimEnd('\n');
ushort number = ushort.Parse(resMsg); byte[] byteArray = BitConverter.GetBytes(number); Array.Reverse(byteArray); string str = Encoding.ASCII.GetString(byteArray); numb[i] = str; }
string number2 = null; for (int k=0; k<8; k++) { number2 += numb[k]; } number2 = number2.TrimEnd('\0'); searchTextBox.Text = number2;
無理やり変換して最後に繋いでいるのですが短いコードで出来る方法はないでしょうか |