.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);
}