2016-02-04 4 views
-9

У меня есть текстовый файл, из которого я хотел бы удалить всю строку текста. Я хочу удалить всю строку текста, если первое количество символов в этой строке превышает определенную сумму, прежде чем пробел начнется в этой строке, я надеюсь, что это имеет смысл.Удалить строки из текстового файла C#

Пример:

1234567890************** (* = white space such as SPACE or TAB) 

1234567890123********** (* = white space such as SPACE or TAB) 

Количество символов до того пустого пространства в примере 2 линии превышает 10 символов, так что вся строка текста должна быть удалена.

Заранее спасибо.

+2

поделитесь некоторым кодом, который вы пробовали – Arshad

+1

Вы забыли добавить свой код и номер строки, где вы получите сообщение об ошибке. –

ответ

0

сначала прочитайте текст в строке за строкой. для каждой строки проверьте первые 10-ые символы. Если они не являются «недопустимым символом» (вкладкой или пробелом), укажите строку в последней строке. Затем сохраните финальную строку. (Вы можете перезаписать исходный файл, если необходимо)

List<char> invalidChars = new List<char> {" ", ";"}; 
string finalString = ""; 
using (StreamReader sr = new StreamReader("TestFile.txt")) 
     { 
      //grab line 
      String line = sr.ReadToEnd(); 
      //grab first 10 chars of the line 
      string firstChars = line.substring(0,10); 
      //check if contains 
      bool hasInvalidChars = false; 
      foreach(char c in invalidChars) 
      { 
       if(firstChars.toLowerInvariant().IndexOf(c) == 1) 
        hasInvalidChars = true; 
      } 
      if(!hasInvalidChars) 
       finalString += line + Environment.NewLine; 
     } 

//now store results 
using (System.IO.StreamWriter file = 
     new System.IO.StreamWriter(@"results.txt")) 
{ 
    file.write(finalString); 
} 

затем разбить строку на части:

+1

Не знаете, почему вы делаете домашнее задание OP для них. –

+0

Я был на его лодке:) – javirs

+1

Значит, вы просто делаете это для них, чтобы они вообще ничего не узнали и просто скопировали ваш ответ? Отличный способ ** не ** обучения ... –

-1

включают ссылку => с использованием System.IO; дать вам путь к файлу, где нужно поместить файл, а затем вызвать поток писателя, чтобы написать этот файл, как я есть написать «я хороший» используя (StreamWriter Sw = новый StreamWriter (FilePath))
{ sw.Write("i am good"); }

+0

PLS добавить некоторые пояснения о вашем решении –

+0

он хочет УДАЛИТЬ строки в текстовом файле, а не создавать/писать строки к нему –

+0

pass sw .Write ("") .its очистит строку –

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