【问题标题】:User multiline input converted to an array and processed individually用户多行输入转换为数组并单独处理
【发布时间】:2019-06-11 21:42:39
【问题描述】:

我找不到任何示例,也无法确定如何将行从文本框发送到数组并单独用作 cmd.exe 参数的一部分。

我可以处理一行,但是当我尝试实现数组时,我被挂断了。

    private void Button1_Click(object sender, EventArgs e)
    {
        var Textbox1Var = Textbox1.Text;
        string[] Textbox2Var = Textbox1.Text.Split('\n');
        void RunCmd()
        {
            Process.Start("cmd.exe", @"/k [command] parameter1 " + 
Textbox1Var + " " + Textbox2Var).WaitForExit();
//I know this isn't right and I probably need a foreach somewhere
//That's wht I need help with. 
//This is the current stored code but have made multiple attempts
        }
        RunCmd();
    }

我希望该过程完成并在用户按 Enter 键关闭提示时显示响应,但目前我的代码中只有错误或循环问题...

【问题讨论】:

  • 我不明白这与我的用例有什么关系,但假设调用 cmd.exe 只是为了让命令框不消失以便可以查看结果。你将做点什么不同的?描述了我的用例:我希望完成该过程并在用户按 Enter 键关闭提示时显示响应。
  • 主要问题是数组。我可以在没有 cmd.exe 的情况下调用命令

标签: c# arrays process textbox multiline


【解决方案1】:

您必须遍历 Textbox2Var 数组中的所有条目并打印它们。为此,有一个名为 String.Join 的辅助函数。

在您的代码中,您必须打印String.Join(" ", Textbox2Var) 的结果,而不仅仅是打印Textbox2Var

整行是:

Process.Start("cmd.exe", @"/k [command] parameter1 " + Textbox1Var + " " + String.Join(" ", Textbox2Var)).WaitForExit();

这假定参数应该由一个空白空格分隔。

【讨论】:

  • 我不明白这是如何创建多行 [command] parameter1 " + Textbox1Var + " " + String.Join(" ", Textbox2Var)) 根据数字传递给 cmd.exe textbox2 中的行数
  • 您想为文本框中的每一行调用Process.Start 吗?也许你应该明确你的目标。
  • 我的目标是让每一行都成为通过的命令中的参数。每一行本身就是一个命令。其他参数保留用户在其他字段中输入的任何内容。它们应该添加到文本框中的每一行。启动 cmd.exe 只是为了可以看到命令的结果。处理完所有命令后,用户按回车键关闭 cmd.exe。
  • 我实际上是在想,在我提交问题之后,用 textbox.lines 创建一个新数组并将带有其他参数的行写回文本框以进行验证之前处理它们。这会更容易吗?
猜你喜欢
  • 1970-01-01
  • 2017-05-02
  • 2017-03-03
  • 2020-01-28
  • 2015-02-14
  • 2015-01-26
  • 2013-04-17
  • 2018-10-17
  • 1970-01-01
相关资源
最近更新 更多