阅读每一行2多行文本框
本文关键字:文本 一行 | 更新日期: 2023-09-27 18:10:27
是否有办法读取每一行2多行文本框?在textBox1
中,我使用以下代码作为包含压缩文件列表的多行字符串:
DirectoryInfo getExpandDLL = new DirectoryInfo(showExpandPath);
FileInfo[] expandDLL = getExpandDLL.GetFiles("*.dl_");
foreach (FileInfo listExpandDLL in expandDLL)
{
textBox1.AppendText(listExpandDLL + Environment.NewLine);
}
目前我的代码部分是这样的:
textBox2.Text = textBox1.Text.Replace("dl_", "dll");
string cmdLine = textDir.Text + "''" + textBox1.Text + " " + textDir.Text + "''" + textBox2.Text;
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
startInfo.FileName = "expand.exe";
startInfo.UseShellExecute = true;
startInfo.Arguments = cmdLine.Replace(Environment.NewLine, string.Empty);
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
上面的代码取textBox1中压缩文件的名称,并在textBox2中重命名它,然后运行expand.exe来展开压缩文件。代码基本上给出了expander .exe以下命令作为示例:
c:'users'nigel'desktop'file.dl_ c:'users'nigel'desktop'file.dll
如果文件夹在textBox1中只包含一行文本,则效果很好。对于多行文本,命令基本上是:
c:'users'nigel'desktop'loadsoffiles.dl_ etc and doesnt work!
是否有一种方法来读取textBox1的每一行,改变字符串并将其放入textBox2,然后通过命令expand.exe?
string cmdLine = textDir.Text + "''" + lineOFtextBox1 + " " + textDir.Text + "''" + lineOftextBox2;
编辑:只是为了清楚:TextBox1包含:
- somefile.dl_
- someMore.dl_
- evenmore.dl_
作为多行。我的代码将多行文本放入textBox2中因此它包含:
- somefile.dll
- someMore.dll
- evenmore.dll
是否有一种方法来读取每一行/得到每一行的textBox1和textBox2和做'的东西' ?
谢谢!
您需要做的是遍历字符串数组,而不是处理单个字符串。请注意,TextBox有一个"Lines"属性,可以给你已经分割成数组的行
foreach(string line in textBox1.Lines)
{
//your code, but working with 'line' - one at a time
}
所以我认为你的完整解决方案是:
foreach (string line in textBox1.Lines)
{
string cmdLine = textDir.Text + "''" + line + " " + textDir.Text + "''" + line.Replace("dl_", "dll");
var process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "expand.exe",
Arguments = cmdLine.Replace(Environment.NewLine, string.Empty),
WindowStyle = ProcessWindowStyle.Normal,
UseShellExecute = true
}
};
process.Start();
process.WaitForExit();
}
请注意,我们为文本框中的每一行启动一个进程,我认为这是正确的行为
第一个Google点击告诉我们以下内容:
string txt = TextBox1.Text;
string[] lst = txt.Split(new Char[] { ''n', ''r' }, StringSplitOptions.RemoveEmptyEntries);
你可以试试下面的代码
string a = txtMulti.Text;
string[] delimiter = {Environment.NewLine};
string[] b = a.Split(delimiter, StringSplitOptions.None);