.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); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д