2013-11-13 2 views
-2

У меня есть текстовый файл, имеющий некоторую информацию в виде таблицы, имеющую некоторые важные данные в определенном столбце. Мне нужно прочитать текстовый файл и разделить файлы на несколько файлов на основе значения в столбце.
Пример:
Разделите текстовый файл на несколько файлов на основе условия, прочитав строку за строкой в ​​C#

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

Здесь, в этом примере на основе курса колонке, можно разделить данные на 3 файлов. Я должен разработать аналогичный вид приложения. Пожалуйста, дайте представление о том, как подойти к решению. Спасибо заранее.

+2

Шаг # 1 - попробуйте что-нибудь и опубликуйте свой код. –

+2

Существует буквально сотни примеров разбора текстовых файлов. Сначала попробуйте что-то, затем вернитесь с вопросом о коде, который вы на самом деле писали. – tnw

ответ

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(); 
0

Ваша проблема может быть решена в Основном трех частей:

  1. Читайте текстовый файл. Подсказка:

    System.IO.StreamReader file = new System.IO.StreamReader ("c: \ test.txt"); в то время как ((строка = file.ReadLine())! = NULL) {.. магия материал}

  2. Разделить линии, используя String.split()

  3. Запись в текстовый файл, используя StreamWriter

Этот ответ должен содержать более чем достаточно «ключевых слов» для решения ваших проблем. Не ожидайте полного решения здесь. Если вы застряли на одном из этих шагов. Отправьте свой код, и мы будем рады помочь.

+0

Спасибо, Оле, у меня есть решение, я отправлю свое решение в качестве ответа. –

Смежные вопросы