Как реализовать очистку старой информации из "логового" textBox, к примеру с выше 1000 строк или, там, больше 20 000 символов, не теряя свежие данные?
То есть в textBox1 добавляются (textBox1.AppendText(text + "\n");
) все комментарии о работе, спустя какое-то время, в нем может быть пару тысяч строк, но при этом важны только данные о последних действиях. Как счищать лишнее?
Linq однострочник (неффективно, зато просто и коротко)
myTextBox.Text = myTextBox.Text
.Split(new[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
.Reverse()
.Take(3) // сколько вам надо с конца строк
.Reverse()
.Aggregate(new StringBuilder(), (acc,s)=>acc.AppendLine(s))
.ToString();
Примерно так:
if (textBox.Lines.Length > 1000)
{
var index = textBox.Text.IndexOf(Environment.NewLine);
textBox.Text = textBox.Text.Remove(0, index + Environment.NewLine.Length);
}
textBox.AppendText(text + Environment.NewLine);
Или можно взять ListBox
вместо TextBox
. С ним код будет выглядеть так:
if (listBox.Items.Count > 1000)
{
listBox.Items.RemoveAt(0);
}
listBox.Items.Add(text);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я получил все топики, которые относятся к указанному форуму следующим путём:
Так я получу путь до файла, который передам в аргументА как наоборот, получить объект ассета, указав путь до него? Ну как то вроде того
Создаю ASP NET Core MVC приложение, использую Bootstrap есть три элемента div, нужно вывести все элементы в цикле в один ряд