Удалить строки начинающиеся с

268
16 августа 2017, 15:57

В .txt есть строки, которые начинаются с "{". Как их удалить и оставить только пустую строку. Если количество строк в .txt 500, то останется одна.

string[] file1 = File.ReadAllLines("test1.txt");
foreach (var lines1 in file1)
{
    if (lines1.StartsWith("{"))
    {
        string text = lines1.Replace(lines1, "");
        //Console.WriteLine(lines1);
        File.WriteAllText("test1", text);
    }
}
Answer 1

Не до конца понял, что именно должно остаться в файле. Поэтому сделал универсальный метод.

    var fileList = File.ReadAllLines("test1.txt").ToList();
    for (var i = fileList.Count - 1; i >= 0; i--)
    {
        if (fileList[i].StartsWith("{"))
            fileList.RemoveAt(i); //Удаление строки целиком
            //fileList[i] = String.Empty; //Оставляем строку, но делаем ее пустой
    }
    File.WriteAllLines("test1.txt", fileList);

Суть следующая:

  • Читаем файл построчно и делаем удобный для редактирования List.
  • Перебираем циклом for данный Listи и ищем подходящую нам строку.
  • Если строка подходит, то удаляем ее из List (fileList.RemoveAt(i)) / заменяем ее на нужное (fileList[i] = String.Empty;).
  • Получившийся список перезаписываем в нужный файл.

Только не стоит забывать о проверках (на отсутствие файла к примеру, или на отсутствие изменений (что бы не записывать по сотню раз в файл одну и туже информацию)), но это уже думаю сами без проблем сделаете.

Answer 2

С помощью LINQ выбираем все строки, не начинающиеся с нужного нам символа. Потом удаляем файл и перезаписываем его. Как подсказали ниже, не обязательно удалять файл

var exLines = lines.Where(l => !l.StartsWith("{")); // выбор всех строк в IEnumerable<string>
File.Delete("file"); // удаление файла 
File.AppendAllLines("file.txt", exLines); // создание и записывание файла
READ ALSO
Получение ответа от сом порта

Получение ответа от сом порта

Настраиваю порт, отправляю запросДля обработки ответа использую событие data received

299
Расположение ключей и значений Request.Params

Расположение ключей и значений Request.Params

Есть в проекте вот такая вот строчка

280
Путь к папке для хранения файлов приложения. Xamarin Android

Путь к папке для хранения файлов приложения. Xamarin Android

Я знаю, что у андройд приложений есть папка, к которой имеет доступ только само приложение и системаОна удаляется вместе с приложением

486
Кнопка UncheckAll в заголовке datagridcheckboxcolumn

Кнопка UncheckAll в заголовке datagridcheckboxcolumn

Как сделать кнопку в заголовке datagridcheckboxcolumn которая убирает все галочки в колонке?

226