通过在C#中逐行读取,根据条件将文本文件拆分为多个文件

时间:2013-11-13 17:07:24

标签: c# asp.net text-files streamreader streamwriter

我有一个文本文件,其中包含表格形式的一些信息,在特定列中包含一些重要数据。我需要读取文本文件并根据列中的值将文件拆分为多个文件。
例:

ID   Course  Name  
001  EEE     Harsha  
002  CSE     Madhuri 
003  EIE     Jagan   
004  EEE     Chandu 
005  CSE     Sukanya    
006  EIE     Sarat   

在这个基于课程列的示例中,我可以将数据拆分为3个文件。我必须开发一种类似的应用程序。请介绍如何处理解决方案。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

StreamReader fileI = new StreamReader("C:\\Users\\Harsha\\Desktop\\SampleInput.txt");
        StreamWriter fileA = new StreamWriter("C:\\Users\\Harsha\\Desktop\\A.txt", true);
        StreamWriter fileB = new StreamWriter("C:\\Users\\Harsha\\Desktop\\B.txt", true);
        StreamWriter fileC = new StreamWriter("C:\\Users\\Harsha\\Desktop\\C.txt", true);


        string line;
        int counter = System.IO.File.ReadAllLines("C:\\Users\\Harsha\\Desktop\\SampleInput.txt").Length;

        for (int linenum = 0; linenum <= counter; linenum++)
        {
            if ((line = fileI.ReadLine()) != null)
            {
                string c1 = (line.ElementAt<char>(6)).ToString();
                string c2 = (line.ElementAt<char>(7)).ToString();
                string c3 = (line.ElementAt<char>(8)).ToString();
                string c4 = c1 + c2 + c3;

                if (c4 == "CSE")
                {

                        fileA.WriteLine(line);
                }
                else if(c4=="EEE")
                {
                        fileB.WriteLine(line);
                }
                else if(c4=="EIE")
                {
                    fileC.WriteLine(line);
                }

            }
        }


        fileI.Close();
        fileA.Close();
        fileB.Close();
        fileC.Close();

答案 1 :(得分:0)

您的问题可以通过以下三个部分来解决:

  1. 阅读文本文件。 提示:

    System.IO.StreamReader file = new System.IO.StreamReader(“c:\ test.txt”); while((line = file.ReadLine())!= null){.. magic stuff}

  2. 使用string.split()

  3. 拆分行
  4. 使用StreamWriter
  5. 写入文本文件

    这个答案应该包含足够多的“流行语”来解决你的问题。不要指望这里有完整的解决方案。如果你遇到其中一个步骤。发布您的代码,我们很乐意提供帮助。