0

我正在使用锐利的发展。我正在使用 C# 制作一个 Win App。我希望我的程序检查驱动器 c: 中名为 test 的文本文件,并找到包含 "=" 的行,然后将此行写入驱动器 c: 中其他新创建的文本文件。

4

6 回答 6

2

这是另一种使用File.ReadLinesLinqWhereFile.AppendAllLines

var path1 = @"C:\test.txt";
var path2 = @"C:\test_out.txt";

var equalLines = File.ReadLines(path1)
                     .Where(l => l.Contains("="));
File.AppendAllLines(path2, equalLines.Take(1));
于 2012-09-28T05:26:03.153 回答
2

试试这个单行:

File.WriteAllLines(destinationFileName,
    File.ReadAllLines(sourceFileName)
        .Where(x => x.Contains("=")));
于 2012-09-28T05:22:38.260 回答
1
using(StreamWriter sw = new StreamWriter(@"C:\destinationFile.txt"))
{
    StreamReader sr = new StreamReader(@"C:\sourceFile.txt");

    string line = String.Empty;

    while ((line = sr.ReadLine()) != null)
    {
        if (line.Contains("=")) { sw.WriteLine(line)); }
    }
    sr.Close();
}
于 2012-09-28T05:20:05.057 回答
0

稍微编辑了 Furqan 的答案

using (StreamReader sr = new StreamReader(@"C:\Users\Username\Documents\a.txt"))
using (StreamWriter sw = new StreamWriter(@"C:\Users\Username\Documents\b.txt"))
{
    int counter = 0;
    string line = String.Empty;
    while ((line = sr.ReadLine()) != null)
    {
        if (line.Contains("="))
        {
           sw.WriteLine(line);

           if (++counter == 4)
           {
              sw.WriteLine();
              counter = 0;
           }
        }
    }
}
于 2012-09-28T05:33:45.723 回答
0
if (File.Exists(txtBaseAddress.Text))
{
    StreamReader sr = new StreamReader(txtBaseAddress.Text);
    string line;
    string fileText = "";
    while ((line = sr.ReadLine()) != null)
    {
        if (line.Contains("="))
        {
            fileText += line;
        }
    } 
    sr.Close();
    if (fileText != "")
    {
        try
        {

            StreamWriter sw = new StreamWriter(txtDestAddress.Text);
            sw.Write(fileText);
            sw.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
}
于 2012-09-28T05:26:19.323 回答
0

你尝试过什么吗?

这里有两种读取文件的方法:

  1. 使用 File 类中可用的静态方法。ReadAllLines 要具体。如果您正在处理小文件,这已经足够了。接下来,一旦你有了数组,只需使用 LINQ 或任何其他迭代方法找到带有“=”的项目。一旦你得到了这条线,再次使用 File 类来创建数据并将数据写入文件。

  2. 如果您正在处理大文件,请使用 Stream。休息保持不变。

于 2012-09-28T05:19:50.147 回答