0

我想制作一个程序来读取一行数字和符号,并且我只想读取一些特定的数字,这样我就可以制作 3 个案例,然后根据其中的数字在文本框中输出一些内容。你能通过提供必要的代码来帮助我吗?(我打算在 Windows 窗体应用程序中使用它)

示例:我得到键盘输入 -> (01)04006544860533(10)L825308500并且我只想保留04006544860533以便我可以将它用于案例 1 并返回 textbox4="...."。

我无法更改输入,它必须是长输入。

编辑

感谢您的快速答复

好的,我使用了您在按钮中提供的代码,但我总是在我的文本框中得到默认响应,所以我想我错过了一些东西 xD。如果我在它有效的情况下输入数字

(希腊语的节目文本嘿嘿)

代码

private void button1_Click(object sender, EventArgs e) { string input = BarcodeTextBox.Text; 字符串编号 = input.Substring(5, 14);

        switch (input) //tried switch (number) also
        {
            case ("4006544849033"):
            ProductTextBox.Text = "SLS ΛΕΥΚΗ ΖΑΧΑΡΗ ΑΠΟ ΖΑΧΑΡΟΚΑΛΑΜΟ 1kg";
            break;

            case ("4006544860533"):
            ProductTextBox.Text = "SLS ΑΚΑΤΕΡΓΑΣΤΗ ΖΑΧΑΡΗ 0,5kg";
            break;

            case ("4006544849637"):
            ProductTextBox.Text = "SLS ΑΧΝΗ ΖΑΧΑΡΗ 0,4kg";
            break;

            case ("4006544851630"):
            ProductTextBox.Text = "ΛΕΥΚΗ ΖΑΧΑΡΗ EU2-F 25κιλά ΖΑΧ/ΛΑΜΟ";
            break;

            case ("4006544901137"):
            ProductTextBox.Text = "ΚΡΤΣΤ. ZAX.GR 10X1kg AB";
            break;

            case ("4006544901335"):
            ProductTextBox.Text = "ΚΡΤΣΤ.GR 10X1 Κιλά LIDL ΕΛΛΑΣ";
            break;

            case ("5410256208115"):
            ProductTextBox.Text = "ΚΡΤΣΤ. ZAX.GR 10X1kg ΣΚΛΑΒΕΝΙΤΗΣ";
            break;

            case ("4006544901731"):
            ProductTextBox.Text = "ΚΡΤΣΤ.GR 10X1 Κιλά LIDL ΕΛΛΑΣ DHP";
            break;

            case ("4006544901830"):
            ProductTextBox.Text = "SLS ΑΧΝΗ ΖΑΧΑΡΗ 0,4kg Limited Edition";
            break;

            default:
            ProductTextBox.Text = "Λάθος Αριθμός Barcode, Ξαναπροσπαθήστε";
            break;
        } 
    }
4

2 回答 2

1

如果输入文本的长度和格式始终相同,您可以像这样使用Substring函数:

 string input = "(01)04006544860533(10)L825308500";
 string number = input.Substring(4, 14);
 // if you also need the first number in parenthesis
 int firstNumber = Int32.Parse(input.Substring(1,2));  // this will be equal to 1

如果字符串可能具有可变长度但格式始终相同,那么您可以使用正则表达式来获取数字:

 Regex rex = new Regex("^\\(\\d+\\)(\\d+)");
 Match m = rex.Match(input);
 if(m.Success && m.Groups[1].Success){
     string number = m.Group[1].Value;
 }
于 2013-03-26T13:56:09.387 回答
0

您可以使用正则表达式来验证输入中的数字。

\d{10} 将匹配一个 10 位数字。

你可以在这个网站上做教程并了解更多关于它们的信息:http ://www.regular-expressions.info/

于 2013-03-26T13:56:29.620 回答