1С Найти – поиск подстроки или символа

Также на эту тему:
Строки и символы в 1С
Функции работы со строками 1С - анализ текста
1С СтрДлина – длина строки
1С СокрЛП, СокрЛ, СокрП – удаление лишних символов
1С Сред, Лев, Прав - подстрока

Дополнительные материалы:
Электронная книга "Язык 1С. Том 2"

Функция 1С Найти(СтрокаГдеИщем, СтрокаЧтоИщем) ищет в тексте первое вхождение нужной нам подстроки, и возвращает номер позиции первой буквы найденной подстроки в тексте.


Например:

  • Выполняем 1С Найти(«Ежик смеялся и кушал кактус», «и кушал»)
  • 1С возвращает номер позиции слова «и» — 14
  • Выполняем 1С Найти(«Ежик смеялся и кушал кактус», «и»)
  • 1С возвращает номер позиции буквы «и» в слове «ежик» — 3
  • Выполняем 1С Найти(«Ежик смеялся и кушал кактус», «с иголками»)
  • 1С возвращает 0, так как той подстроки, что мы ищем в тексте нет.

Аккуратно — если в параметре(ах) 1С Найти указана пустая строка, то вернет не 0, а 1.

На примере нашего анализатора текста сделаем с помощью 1С Найти – сохранение списка значений в строку с разделителями, и восстановление из строки в список значений обратно.

Допустим:

  • что нам на «входе» подается массив или список значений (колонку таблицы значений можно выгрузить в массив с помощью метода ВыгрузитьКолонку())
  • что значения в массиве/списке только строковые (т.е. не будем запоминать, число это было или строка)
  • как пример «строки с разделителями»: «12;32;белый»



Только зарегистрированные пользователи VIP группы могут видеть этот контент.


Пример использования созданных нами функций:
Список = Новый СписокЗначений();
Список.Добавить(22);
Список.Добавить(33.5);
Список.Добавить("Здесь был Петя");
Список.Добавить("Петя нашел йожика; а тот съел Петю");
Список.Добавить(ТекущаяДата());

Строка = ВСтрокуСРазделителями(Список);
СписокЗначений = ИзСтрокиСРазделителями(Строка);
Массив = СписокЗначений.ВыгрузитьЗначения();

Сообщения от 1С в результате выполнения этого кода:
22;33,5;Здесь был Петя;Петя нашел йожика#ЗДЕСЬ_БЫЛ_РАЗДЕЛИТЕЛЬ а тот съел Петю;25.10.2012 14:14:43

Входящая строка: 22;33,5;Здесь был Петя;Петя нашел йожика#ЗДЕСЬ_БЫЛ_РАЗДЕЛИТЕЛЬ а тот съел Петю;25.10.2012 14:14:43

Результат:
22
33,5
Здесь был Петя
Петя нашел йожика; а тот съел Петю
25.10.2012 14:14:43


Проголосовать за этот пост:

1 Star2 Stars3 Stars4 Stars5 Stars (1 голосов, среднее: 4,00 из 5)
Loading ... Loading ...

Также на эту тему:
Строки и символы в 1С
Функции работы со строками 1С - анализ текста
1С СтрДлина – длина строки
1С СокрЛП, СокрЛ, СокрП – удаление лишних символов
1С Сред, Лев, Прав - подстрока
1С ВРег, НРег, ТРег – изменение "регистра" символов
1С ПустаяСтрока – проверка строки на заполненность
1С СтрЗаменить – замена строки или символа
1С СтрЧислоВхождений – количество вхождений подстроки
1С СтрЧислоСтрок – количество строк в многострочном тексте

Дополнительные материалы:
Электронная книга "Язык 1С. Том 2"

Добавить комментарий