如果Statement无法正常工作,请查找ascii字节

时间:2018-01-18 21:29:58

标签: c# byte ascii

我正在查看文本框的文本更改事件的值,因此当我们使用手持设备进行扫描时,它会查看它,如果ascii字符9位于第7位,它应该踢出我们想要的内容。然而,这不起作用,不知道我错过了什么。我试过asciiBytes [0] == 0x80和asciiBytes [0] ==" 9"既没有工作......

protected void poTextBox_TextChanged(object sender, EventArgs e)
{
    byte[] asciiBytes = Encoding.ASCII.GetBytes(poTextBox.Text);

    if (asciiBytes[7] == 0x9)
    {
        string po = poTextBox.Text.Substring(0, 6);
        string item = poTextBox.Text.Substring(9, 15);

        poTextBox.Text = po;
        itemTextBox.Text = item;
    }        

}

2 个答案:

答案 0 :(得分:0)

C#数组是基于0的。所以数组的第7个位置是asciiBytes[6]

如果您想要字符ASCII 9(即制表符),则比较为9.如果您想要字符'9',则与'9'进行比较。

此外,Encoding.ASCII.GetBytes()的使用是不必要的,可能会导致问题。代码看起来像这样:

protected void poTextBox_TextChanged(object sender, EventArgs e)
{
    if (poTextBox.Text[6] == 9)
    {
        // Etc...
    }        
}

答案 1 :(得分:0)

能够通过在扫描仪上编写Tab键来执行此操作,以便触发Text Changed事件...然后使用此代码:

if (poTextBox.Text.Substring(7, 1) == "\t")
    {
        string po = poTextBox.Text.Substring(0, 6);
        string item = poTextBox.Text.Substring(8);

        poTextBox.Text = po;
        itemTextBox.Text = item;
    }