Иногда нужно совершить некоторые действия со строками, т.е с полученными данными, которые нельзя сделать заменами. Или можно, но не всегда это удобно. В Датакол со строками можно работать через Динамический плагин. Это по сути язык программирования C# с .NET4.
Работа с получением данных в Датакол проходит в такой последовательности:
- Датакол получает строку в исходном коде, т.е со всеми данными и тегами.
- Дальше, если у вас установлено «Удалять теги», то вы получаете строку без тегов, только текст. Соответственно, если вы сохраняете теги, или сохраняете только определенные — то в нужном виде получаете строку.
- Далее, если Вы указали какие-то замены, то они применяются. Причем применяются в такой последовательности, в которой они указаны, сверху вниз. Причем будьте внимательны, еще есть глобальные замены для полей. Они применяются ко всем полям.
- Далее, уже, если задействован, применяется динамический плагин.
Теперь перейдем непосредственно к практике. В этой статье я покажу простые примеры, если эта тема будет интересной, но дальше можем перейти к более сложным.
Для всех примеров схема действий простая:
- Открываем вкладку «Дополнительно» для нужного поля.
- Отмечаем галочкой «Активен» для блока «Динамический плагин обработки поля»
- Нажимаем кнопку «Редактировать».
- Вставляем ниже указанные примеры до строки «return s;».
Изменить все символы на нижний регистр
s = s.ToLower();
Изменить все символы на верхний регистр
s = s.ToUpper();
Узнать длину строки
s = s.Length.ToString();
P.S Т.к свойство Length возвращается в int, поэтому нужно его конвертировать в строку ToString(), т.к «s» у нас строка.
Вставка символа или значения на определенную позицию
s = s.Insert(10,"...");
Т.е на 10й позиции строки вставится «…»
Удаляем все символы, начиная с n-позиции
s = s.Remove(5);
Этим мы удалим все символы, начиная с 5-го
P.S устите, что у всех строк отсчет начинается с 0, т.е 1й символ имеет индекс 0.
Получаем часть строки, начиная с n-позиции
s = s.Substring(7);
В этом примере мы получим часть строки, после 7-го символа.
Немного усложним, скомбинируем и добавим условие.
Делаем первый символ заглавным
s = s.Remove(1).ToUpper() + s.Substring(1);
- s.Remove(1).ToUpper() — оставляем только 1й символ и переводим его в верхний регистр
- s.Substring(1) — удаляем первый симвом оставля при этом все остальные
- С помощью знака «+» мы соединяем текст
Также еще как вариант, когда нужно все остальные символы сделать маленикими, кроме первого
s = s.Remove(1).ToUpper() + s.Substring(1).ToLower();
Проверяем длину строки, если она больше нашего значения, до добавим в конце значение
Это будет полезно, например, для парсинга короткого описания. Предположим, что в короткое описание влазит не более 200 символов.
int slen = 200; // Задаем макс длину строки if (s.Length > slen) // проверяем, если она больше макс длины { s = s.Remove(slen - 4); // Если больше, то вычитаем 4 символа, чтобы влез пробел и троеточие s = s + " ..."; // добавляем значение для конча строки }