如何从textFile中的TextBox复制文本?

时间:2015-09-11 07:22:42

标签: c# .net text-files

我创建了一个Windows窗体应用程序,我有一个TextBox,其文本位置如下:C:\DATA\FOLDER

此外,我在d:\data\test.txt中有一个文本文件,其中包含许多行,但为Location=""定义了一行。

如何在TextBox行的文本文件test.txt中复制Location=""中指定的位置,而不提及行号?

3 个答案:

答案 0 :(得分:6)

你可以在一行中完成

var path = @"d:\data\test.txt";
File.WriteAllLines(path, File.ReadAllLines(path)
    .Select(line => line.StartsWith("Location=\"")
        ? string.Format("Location=\"{0}\"", textBox1.Text)
        : line));

首先你读取文件中的所有行,如果其中任何一行以“Location =”开头,那么它将被文本框中的位置替换。最后你将结果写回文件。

如果你不喜欢在一行中做(并且对我而言没有为它投票)那么你可以将它拆分

var path = @"d:\data\test.txt";
var lines = File.ReadAllLines(path);

var modifiedLines = lines.Select(line =>
{
    if (line.StartsWith("Location=\""))
    {
        return string.Format("Location=\"{0}\"", textBox1.Text);
    }
    else
    {
        return line;
    }
});

File.WriteAllLines(path, modifiedLines);

我认为有时候编写更多代码会降低可读性!

答案 1 :(得分:4)

string text = File.ReadAllText("test.txt");
string filepath=textBox1.Text;
text = text.Replace("Location="" "," Location= "+filepath+");
File.WriteAllText("test.txt", text);

答案 2 :(得分:2)

这也有效:

IList<string> output = new List<string>();

using (StreamReader sr = new StreamReader("d:\\data\\test.txt"))
{
    string line;

    while ((line = sr.ReadLine()) != null)
    {
        if (line.StartsWith("Location=\""))
        {
            line = String.Format("Location=\"{0}\"", "TextBox.Text");
        }

        output.Add(line);
    }
}

File.WriteAllText("d:\\data\\test.txt", string.Join(Environment.NewLine, output));