.NET 3.x Поиск строки из файла - C#
Формулировка задачи:
Привет!
У меня в txt - файле есть строки, в конце есть строка: например:
# @l3yl5+Vl58n7HtK9hRRG80kI3/rmNC9nJy/h6Xza6axFimD7G
Как удалить все записи именно что идет после выше написаного?!
Почти то что нужно, но удаляет только по одной строчке!
У кого есть идеи как получше сделать???
Крч как после этой строки : # @l3yl5+Vl58n7HtK9hRRG80kI3/rmNC9nJy/h6Xza6axFimD7G
Удалить всё что есть ниже!
То есть если существуют там записи какие нибудь то Delete их ! ))) Я уже не знаю просто помогите ))
попробовал так:
Листинг программы
- string HST = @"C:\KeyDBS.txt";
- var file = new List<string>(System.IO.File.ReadAllLines(HST));
- file.RemoveAt(20);
- File.WriteAllLines(HST, file.ToArray());
Проблему решил просто добавил:
Листинг программы
- try
- {
- string HST = @"C:\KeyDBS.txt"; // путь до файла
- var file = new List<string>(File.ReadAllLines(HST));
- while (true) // проходим циклом
- {
- file.RemoveAt(20); // удаляем всё после 20 строчки
- File.WriteAllLines(HST, file.ToArray());
- }
- }
- catch { }
Последний вопрос: как проверить существование записи?
Точнее, как проверить существуют ли записи после 20 строчки?!
Решение задачи: «.NET 3.x Поиск строки из файла»
textual
Листинг программы
- // Решение раз
- const string HST = @"C:\KeyDBS.txt"; // путь до файла
- const string marker = "# @l3yl5+Vl58n7HtK9hRRG80kI3/rmNC9nJy/h6Xza6axFimD7G";
- var lines = File.ReadAllLines(HST);
- File.WriteAllLines(HST, lines.TakeWhile(l => l != marker));
- File.AppendText(marker + Environment.NewLine);
- // Решение два
- const string HST = @"C:\KeyDBS.txt"; // путь до файла
- const string marker = "# @l3yl5+Vl58n7HtK9hRRG80kI3/rmNC9nJy/h6Xza6axFimD7G";
- var lines = new List<string>(File.ReadLines(HST));
- int index = lines.IndexOf(marker);
- if (index >= 0)
- {
- lines.RemoveRange(index, lines.Count - index);
- File.WriteAllLines(HST, lines);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д