Иногда нужно совершить некоторые действия со строками, т.е с полученными данными, которые нельзя сделать заменами. Или можно, но не всегда это удобно. В Датакол со строками можно работать через Динамический плагин. Это по сути язык программирования C# с .NET4.

Работа с получением данных в Датакол проходит в такой последовательности:

  1. Датакол получает строку в исходном коде, т.е со всеми данными и тегами.
  2. Дальше, если у вас установлено «Удалять теги», то вы получаете строку без тегов, только текст. Соответственно, если вы сохраняете теги, или сохраняете только определенные — то в нужном виде получаете строку.
  3. Далее, если Вы указали какие-то замены, то они применяются. Причем применяются в такой последовательности, в которой они указаны, сверху вниз. Причем будьте внимательны, еще есть глобальные замены для полей. Они применяются ко всем полям.
  4. Далее, уже, если задействован, применяется динамический плагин.

Теперь перейдем непосредственно к практике. В этой статье я покажу простые примеры, если эта тема будет интересной, но дальше можем перейти к более сложным.

Для всех примеров схема действий простая:

  1. Открываем вкладку «Дополнительно» для нужного поля.
  2. Отмечаем галочкой «Активен» для блока «Динамический плагин обработки поля»
  3. Нажимаем кнопку «Редактировать».
  4. Вставляем ниже указанные примеры до строки «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);
  1. s.Remove(1).ToUpper() — оставляем только 1й символ и переводим его в верхний регистр
  2. s.Substring(1) — удаляем первый симвом оставля при этом все остальные
  3. С помощью знака «+» мы соединяем текст

Также еще как вариант, когда нужно все остальные символы сделать маленикими, кроме первого

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 + " ..."; // добавляем значение для конча строки 
	}

От admin