从文本文件中删除文本

时间:2013-10-27 07:51:03

标签: c# file io text-files

我想知道如何从每行的文件中删除一定数量的文本。

我想不出一种完成这项任务的方法。

878     57  2
882     63  1
887     62  1
1001    71  0
1041    79  1
1046    73  2

这是文本文件的样子,但我只想要左边的数字。我不能手动右边的2行,因为有超过16,000行。

左边的数字也会改变长度,所以我不能按长度读取它们。

我也不确定数字分隔的是什么字符,它可能是标签。

任何人对我的尝试都有任何想法吗?

如果您想查看文本文件,请访问:http://pastebin.com/xyaCsc6W

5 个答案:

答案 0 :(得分:3)

var query = File.ReadLines("input.txt")
    .Where(x => char.IsDigit(x.FirstOrDefault()))
    .Select(x => string.Join("", x.TakeWhile(char.IsDigit)));

File.WriteAllLines("output.txt", query);

答案 1 :(得分:0)

string line;
using (var sr = new StreamReader(@"E:\test1.txt"))
{
    using (var sw = new StreamWriter(@"E:\test1.tmp"))
    {
        while (!sr.EndOfStream)
        {
            line = sr.ReadLine();
            line = Regex.Match(line, @"([\d]*)").Groups[1].Value;
            sw.WriteLine(line);
        }
    }
}
File.Replace(@"E:\test1.tmp", @"E:\test1.txt", null);

答案 2 :(得分:0)

你可以这样做:

var col = 
 from s in File.ReadAllLines(input_file_name);
 select s.Split("   ".ToCharArray())[0]; 

注意:在Split(“”)中,我有一个空格和制表符。

答案 3 :(得分:0)

你也可以这样做,它只会给你一个文本文件的左(列)字符(数字/字母数字)的结果列表:

var results = File.ReadAllLines("filename.txt")
              .Select(line => line.Split('\t').First())
              .ToList();

看起来文本文件由制表符分隔。

要将结果列表保存回文本文件,请另外添加以下内容:

 File.WriteAllLines("results.txt", results.ToArray());

答案 4 :(得分:0)

        StringBuilder sb = new StringBuilder();
       //read the line by line of file.txt
        using (StreamReader sr = new StreamReader("file.txt"))
        {
            String line;
            // Read and display lines from the file until the end of 
            // the file is reached.
            while ((line = sr.ReadLine()) != null)
            {
                //for each line identify the space
                //cut the data from beginning of each line to where it finds space
                string str = line.Substring(0, line.IndexOf(' '));

                //Append each modifed line into string builder object
                sb.AppendLine(str);

            }
        }

        //Create temp newfile
        using (File.Create("newfile.txt"))
        {
            //create newfile to store the modified data
        }

        //Add modified data into newfile
        File.WriteAllText("newfile.txt",sb.ToString());

        //Replace with new file
        File.Replace("newfile.txt", "file.txt", null);