C#發送字符串轉字節含空格與0x需刪去


主要作用:清除發送字符串轉字節中的空格和16進制前綴0x,

字節轉換按兩位字符轉換為一個字節,多余一位按一位字符轉換一個字節 

 

//清除空格和16進制前綴發送
String sendstr;// = new String [textBox1.Text.Length]
sendstr = textBox1.Text;

//這里采用substring較麻煩,不能使用split,因為sendstr為隱形string[],應該還可以用remove(未嘗試過)

//清除發送字符串轉字節中的空格和16進制前綴0x
sendstr = sendstr.Replace(" ", "");
sendstr = sendstr.Replace("0x", "");
byte[] Data = new byte[1];
try
{
if (serialPort1.IsOpen)
{
if (textBox1.Text != "")
{

//字節轉換按兩位字符轉換為一個字節,多余一位按一位字符轉換一個字節
for (int i = 0; i < (sendstr.Length - sendstr.Length % 2) / 2; i++)
{
Data[0] = Convert.ToByte(sendstr.Substring(i * 2, 2), 16);
serialPort1.Write(Data, 0, 1);
}
if (sendstr.Length % 2 != 0)
{
Data[0] = Convert.ToByte(sendstr.Substring(sendstr.Length - 1, 1), 16);
serialPort1.Write(Data, 0, 1);
}
}
else
{
MessageBox.Show("發送區未輸入數據", "數據輸入提示");
}
//serialPort1.Write(recivebyte, 0, recivebyte.Length);
}
else
{
MessageBox.Show("串口未打開", "串口未打開提示");
}
}
catch
{
MessageBox.Show("發送出錯", "錯誤提示");
serialPort1.Close();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM