【问题标题】:Reading different int from the same textbox从同一个文本框中读取不同的 int
【发布时间】:2012-10-31 17:30:31
【问题描述】:

我对 C# 还不太熟悉,这里有一些问题:

我想通过串口将我的年龄以十六进制代码发送到我的电脑所连接的设备。我有这些代码,但我必须从 textBox 中读取输入的年龄。

例如:在 textBox 我输入我的年龄 (24),每个数字都有一个十六进制代码。那么我如何从文本框中读取每个数字?我认为这就是我必须做的,我读取数字 2,发送十六进制代码,然后读取第二个数字并发送十六进制代码。我说清楚了吗?

编辑: 只是在我得到 awnsered 后向你们展示我的代码。谢谢大家:)

 private void btnConfirmaIdade_Click(object sender, EventArgs e)
    {
        string allValue = mtxbIdade.Text;

        foreach (char c in allValue)
        {
            MandaIndadeSerial(c);
        }

    }

    public void MandaIndadeSerial(char c)
    {
        switch (c)
        {
            case '1':
                EnviarComando("0232363b3bde03");// send hexa code to device by serial
                    break;

【问题讨论】:

  • 转换为字节数组...byte[] bytes = System.Text.ASCIIEncoding().GetBytes("24");
  • 您希望它以十六进制 (0x18) 发送 24 吗?或者 2,然后是十六进制的 4 (0x02, 0x04),还是十六进制的“24”的 ASCII (0x32, 0x34)?
  • 我想发送第一个数字,在示例 2 中,然后是 4,但它不是常规十六进制,它是我的设备读取的另一个代码,我知道如何发送命令,什么我不明白我是如何分别从文本框中获取每个数字的。谢谢

标签: c# textbox serial-port int


【解决方案1】:
foreach(char c in TextBox.Text)
{
  // TODO: send current number. Cast to string if needed: (string)c 
}

此代码从左到右遍历 TextBox 中的所有数字/字符,并允许您单独处理/发送它们。

【讨论】:

  • var hex = code.ToString("X"); - 您可以将其压缩为 Linq 投影,例如。 TextBox.Text.Cast<Byte>().Select(x => x.ToString("X"));
  • @MattDavey 不错。或者只是TextBox.Text.Cast<Byte>()。取决于我们的英雄需要什么。
  • 对不起,但我不明白 =/ 我对 C# 和编程不太陌生,这就是我想要的:我想发送第一个数字,在示例 2 中,然后是 4,但是它不是常规的十六进制,它是我的设备读取的另一个代码,我知道如何发送命令,我不明白我如何分别从文本框中获取每个数字。谢谢
  • @JoséFlávio 您需要 2 和 4 作为数字还是字符串?
【解决方案2】:
string numbers = new string[2];
numbers[0] = textbox.Text.Substring(0,1);  //first character in textbox
numbers[1] = textbox.Text.Substring(1,1);  //second character

【讨论】:

  • 如果有3个数字怎么办? 4、5、6?
  • OP 声明年龄...我猜可能有 3 个数字..这是一个例子..只是显示子字符串函数
  • 很多人活到 100 岁以上——当然他们中没有多少人使用电脑!
  • Substring 是一个合理的解决方案,但在迭代时略有下降。仅供参考,我不是投反对票的人,我认为这个答案不值得投反对票(这没有错,只有更好的方法)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多