Skip to content
Zamelane edited this page Feb 22, 2023 · 9 revisions

Добро пожаловать в документацию по UpdateString (Carret)!

Пакет NuGet доступен по ссылке.

Основная информация о структуре

Методы класса UpdateString

  • Конструктор класса UpdateString(_params string[]_)
  • Write(_params string[]_) - Метод вывода на экран
  • RemoveIndex(_int_) - Для удаления одного из элементов строки на вывод
  • Clear() - Для полной очистки строки на вывод
  • Resize(_int_) - Для изменения количества подстрок на вывод
  • AddValueFirst(_string_) - Для добавления части строки в начало вывода
  • AddValueLast(_string_) - Для добавления части строки в конец вывода
  • AddValueLast(_params string[]_) - Для добавления нескольких элементов в конец строки вывода

Пример использования

Write() и конструктор класса

Следующий код создаёт объект типа UpdateString, не имеющего ни одной строки на вывод:

UpdateString MyStr = new UpdateString();

Код ниже создаст объект, хранящий три переданные строки:

UpdateString MyStr = new UpdateString("Строка 1 ", "не имеет ничего общего со строкой ", "2-ой");

Теперь, если для второго примера вызвать печать:

Mystr.Write();

...то переданные строки будут склеены и выведены одной цельной строкой.

Следует учесть, что если строка будет меньше ширины консоли, то она автоматически увеличится до размера консоли (в ширину), чтобы затереть все символы в строке. Вследствие этого, если вызвать печать UpdateString без параметров, то она просто очистит всю строку.

ВАЖНО учитывать, что если вызвать метод Write() с параметрами, то они перезапишут все предыдущие значения, даже если до этого их было передано большее количество.

При первом выводе Write() каретка автоматически будет сдвинута на следующую строку, т.е. он отработает как метод Console.WriteLine(), но при последующем вызове она переноситься не будет.

При вызове Write() каретка сдвигается до нужной строки и перезаписывает её, после чего возвращает каретку обратно, где она стояла до вызова Write().


Если вы работаете с потоками, позаботьтесь о правильной последовательности вывода...


Индексаторы

UpdateString поддерживает индексаторы.

С помощью них можно обращаться к разным "частям" строки. (По факту UpdateString просто хранит массив строк, которые потом склеивает, обрезает или заполняет перед выводом на экран консоли)

Пример изменения значения у уже созданного объекта UpdateString:

  UpdateString MyStr = new UpdateString("Скачивание файла test.zip [", "10", "МБ из 200] Скорость загрузки: [", "5", "МБ/сек]");
     MyStr.Write(); // Выведет строку
        MyStr[1] = "25";
        MyStr[3] = "150";
     MyStr.Write(); // Выведет строку с изменёнными значениями

Добавление и удаление значений

Вы можете добавлять, удалять и полностью очищать значения для вывода. Ниже приведён пример:

UpdateString MyStr = new UpdateString();  // Создаём объект типа UpdateString

MyStr.Write("a", "b", "c");               // Будет выведено "abc". Теперь MyStr хранит строки "a", "b", "c"

MyStr.AddValueFirst("F");                 // Добавит строку "F" в начало массива со строками. Может принимать только одну строку
MyStr.Write();                            // Выведет строку "Fabc"

MyStr.RemoveIndex(0);                     // Удалит первый элемент. В нашем случае это была строка "F"
MyStr.Write();                            // Выведет строку "abc"

MyStr.AddValueLast("L");                  // Добавит в конец массива строк дял вывода строку "L"
MyStr.Write();                            // Выведет стркоу abcL

MyStr.AddValueLast("a", "st");            // AddValueLast() может принимать несколько параметров
MyStr.Write();                            // Выведет строку "abcLast"

MyStr.Clear();                            // Очистит всё содержимое для вывода
MyStr.Write();                            // Очистит строку, так как содержимого нету

MyStr.Write("a", "b", "c");               // Выведет строку "abc"
MyStr.Write();                            // Выведет строку "abc", так как в прошлый раз при вызове Write() были переданы параметры.
                                          // Они переписали строки для вывода...