Объединить элементы массива в строку 1с

Обновлено: 04.07.2024

В случаях, когда нужно разбить строку на части, чаще всего используется один из методов:

  1. СтрРазделить() - платформенный метод
  2. РазложитьСтрокуВМассивПодстрок() - функция общего модуля БСП

Всеми рекомендуется использовать СтрРазделить(), так как это платформенный и более оптимизированный метод. Однако, при этом часто забывают, что он не полностью идентичен второму. И в некоторых случаях применить его не получится.

Разберём нагляднее параметры по-порядку:

СтрРазделить(<Строка>, <Разделитель>, <ВключатьПустые>)

РазложитьСтрокуВМассивПодстрок(<Строка>, <Разделитель>, <ПропускатьПустыеСтроки>, <СокращатьНепечатаемыеСимволы>)

  1. <Строка>
    Тут всё понятно. Строка, которую нужно разделить.
  2. <Разделитель>
    Вроде тоже ясно. Строка, которая является разделителем.
    Однако. Этот параметр оба метода используют по-разному, когда его значение больше, чем один символ.

У СтрРазделить() каждый символ в параметре является отдельным разделителем. В то время как в РазложитьСтрокуВМассивПодстрок() он цельный.

"б1" - цельный разделитель

"б1" - набор из двух несвязанных разделителей. "б" и "1".

Выходит, что когда нам необходимо в качестве разделителя использовать некую строку, то используем метод РазложитьСтрокуВМассивПодстрок(). Ведь платформенный СтрРазделить() сработает иначе.

Так же интересная особенность. Если в этот параметр передать пустую строку, то СтрРазделить() вернёт массив с одним элементов (всей строкой). А РазложитьСтрокуВМассивПодстрок() уйдёт в небытие.


3 . <ВключатьПустые> и <ПропускатьПустыеСтроки>

Параметр хоть и схож, но, снова, не полностью идентичен.

Платформенный метод имеет два положения: Ложь или Истина. Либо результат метода будет содержать пустые строки, либо нет.

В то время, как метод БСП имеет чуть более расширенный функционал, а именно:

Если параметр не задан, то функция работает в режиме совместимости со своей предыдущей версией:
- для разделителя-пробела пустые строки не включаются в результат, для остальных разделителей пустые строки включаются в результат.
- если параметр Строка не содержит значащих символов или не содержит ни одного символа (пустая строка), то в случае разделителя-пробела результатом функции будет массив, содержащий одно значение "" (пустая строка), а при других разделителях результатом функции будет пустой массив.


Получается, если не передать параметр, то БСП сама решит догадаться, нужно ли сохранять пустые элементы или нет. По мне так, если нет необходимости, лучше всегда указывать конкретно логику, чтобы и самому не путаться и не путать других.

4. <СокращатьНепечатаемыеСимволы>

Данный параметр есть только в РазложитьСтрокуВМассивПодстрок().
Всё просто - нужно ли к каждому элементу массива применять СокрЛП (избавлять слева и справа всякие пробелы и переносы строк).

СтрРазделить() этого делать не умеет. Однако, замеры скорости показывают, что быстрее будет обойти циклом результат СтрРазделить(), чем использовать РазложитьСтрокуВМассивПодстрок().

Какие выводы?

В большинстве случаев при помощи СтрРазделить() можно сделать тоже самое, что и РазложитьСтрокуВМассивПодстрок(). В таких случаях нужно применять платформенный метод. Но:

  • Когда необходимо использовать разделитель, состоящий из строки, а не одного символа, берёмся за РазложитьСтрокуВМассивПодстрок()
  • Когда необходимо, чтобы элементы результата были обработаны СокрЛП(), делаем это сами постобработкой. Так будет быстрее.

Понять особенности методов будет полезно на практике. Но помнить не обязательно. Можно вместо этого использовать обёртку на подобии:

Строки в 1С 8.3 во встроенном языке 1с представляют собой значения примитивного типа Строка. Значения данного типа содержат строку в формате Unicode произвольной длины. Переменные строкового типа являются набором символов заключенных в кавычки.

Пример 1. Создадим строковую переменную с текстом.

Функции работы со строками в 1с 8.3

В данном разделе будут приведены основные функции, позволяющие изменять строки в 1с, либо анализировать информацию содержащуюся в них.

СтрДлина

СтрДлина(<Строка>). Возвращает количество символов содержащихся в строке, переданной в параметре.

Итогом выполнения данного кода будет вывод на экран количества символов строки: 11.

СокрЛ

СокрЛ(<Строка>). Отсекает незначащие символы, стоящие слева от первого значащего символа в строке.
Незначащие символы:

  • пробел;
  • неразрывный пробел;
  • табуляция;
  • возврат каретки;
  • перевод строки;
  • перевод формы (страницы).

СокрП

СокрП(<Строка>). Отсекает незначащие символы, стоящие справа от первого значащего символа в строке.

СокрЛП

СокрЛП(<Строка>). Отсекает незначащие символы, стоящие справа от первого значащего символа в строке, также отсекает незначащие символы, стоящие слева от первого значащего символа в строке. Данная функция используется чаще предыдущих двух, так как она более универсальна.

Пример 5. Убрать незначащие символы стоящие слева и справа в наименовании контрагента.

Лев(<Строка>, <ЧислоСимволов>). Получает первые символы строки, число символов указывается в параметре ЧислоСимволов. Если указанное количество символов превышает длину строки, то возвращается вся строка.

Пример 6. Пусть в структуре Сотрудник содержаться имя, фамилия и отчество сотрудника. Получить строку с фамилией и инициалами.

Прав(<Строка>, <ЧислоСимволов>). Получает последние символы строки, число символов указывается в параметре ЧислоСимволов. Если указанное количество символов превышает длину строки, то возвращается вся строка.

Сред(<Строка>, <НачальныйНомер>, <ЧислоСимволов>). Получает подстроку из строки переданной в параметре Строка, начиная с символа номер которого указан в параметре НачальныйНомер и длиной переданной в параметр ЧислоСимволов. Нумерация символов в строке начинается с 1. Если в параметре НачальныйНомер указано значение, меньшее или равное нулю, то параметр принимает значение 1. Если параметр ЧислоСимволов не указан, то выбираются символы до конца строки.

Пример 8. Пусть в строковой переменной начиная с девятой позиции содержится код региона, следует получить его и записать в отдельную строку.

СтрНайти

СтрНайти(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>). Осуществляет поиск указанной подстроки в строке, возвращает номер позиции первого символа найденной подстроки. Рассмотрим параметры данной функции:

  • Строка. Исходная строка;
  • ПодстрокаПоиска. Искомая подстрока;
  • НаправлениеПоиска. Указывает направление поиска подстроки в строке. Может принимать значения:
    • НаправлениеПоиска.СНачала;
    • НаправлениеПоиска.СКонца;

    ВРег(<Строка>). Преобразует все символы указанной строки в 1с 8 к верхнему регистру.

    НРег(<Строка>). Преобразует все символы указанной строки в 1с 8 к нижнему регистру.

    ТРег(<Строка>). Преобразует строку следующим образом: первый символ каждого слова переводится в верхний регистр, остальные символы слова переводятся в нижний регистр.

    Символ

    Символ(<КодСимвола>). Получает символ по его коду в кодировке Unicod.

    КодСимвола

    КодСимвола(<Строка>, <НомерСимвола>). Получает код символа в кодировке Unicode из строки указанной в первом параметре, расположенного в позиции указанной во втором параметре.

    ПустаяСтрока

    ПустаяСтрока(<Строка>). Проверяет состоит ли строка только из незначащих символов, то есть является ли она пустой.

    Пример 15. Проверить является ли пустой строка состоящая из трех пробелов.

    СтрЗаменить

    СтрЗаменить(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>). Находит в исходной строке все вхождения подстроки поиска и заменяет ее на подстроку замены.

    СтрЧислоСтрок

    СтрЧислоСтрок(<Строка>). Позволяет посчитать количество строк в многострочной строке. Для перехода на новую строку в 1с 8 используется символ ПС (символ перевода строки).

    Итогом выполнения данного кода будет вывод на экран количества строк в тексте: 3

    СтрПолучитьСтроку

    СтрПолучитьСтроку(<Строка>, <НомерСтроки>). Получает строку в многострочной строке по ее номеру. Нумерация строк начинается с 1.

    СтрЧислоВхождений

    СтрЧислоВхождений(<Строка>, <ПодстрокаПоиска>). Возвращает число вхождений указанной подстроки в строку. Функция чувствительна к регистру.

    Итогом выполнения данного кода будет вывод на экран числа вхождений: 2.

    СтрНачинаетсяС

    СтрНачинаетсяС(<Строка>, <СтрокаПоиска>). Проверяет начинается ли строка переданная в первом параметре, со строки во втором параметре.

    Пример 20. Определить начинается ли ИНН выбранного контрагента с цифры 1. Пусть в переменной Контрагент хранится ссылка на элемент справочника Контрагенты.

    СтрЗаканчиваетсяНа

    СтрЗаканчиваетсяНа(<Строка>, <СтрокаПоиска>). Проверяет заканчивается ли строка переданная в первом параметре, на строку во втором параметре.

    Пример 21. Определить заканчивается ли ИНН выбранного контрагента на цифру 2. Пусть в переменной Контрагент хранится ссылка на элемент справочника Контрагенты.

    СтрРазделить

    СтрРазделить(<Строка>, <Разделитель>, <ВключатьПустые>). Разделяет строку на части по указанным символам-разделителям и записывает полученные строки в массив. В первом параметре хранится исходная строка, во втором строка содержащая разделитель, в третьем указывается, нужно ли записывать в массив пустые строки (по умолчанию Истина).

    В результате выполнения будет получен массив с числами от 1 до 3-х.

    СтрСоединить

    СтрСоединить(<Строки>, <Разделитель>). Преобразует массив строк из первого параметра в строку, содержащую все элементы массива через разделитель, указанный во втором параметре.

    Пример 23. Используя массив чисел из предыдущего примера, получить исходную строку.

    Прочитайте статью про работу с числами: Число в 1С 8.3 — функции работы с числами

    Sample for String.Join(String, String[], int, - Первый используемый элемент массива value.
    int - Число используемых элементов массива value.

    ввожу два этих дополнительных параметра

    NewString = String.Join("",String,1,2);
    и получаю на выходе вот это

    __________________
    Помощь в написании контрольных, курсовых и дипломных работ здесь

    Объединение всех элементов массива и разделение элементов массива
    оператор в паскале для объединения всех элементов массива и для разделения элементов массива

    Объединение элементов массива
    Здравствуйте. Есть множество Set&lt;Integer&gt; array=,,,>. Нужно объединить элементы.


    объединение элементов многомерного массива
    есть массив вида Array ( =&gt; Array ( =&gt; Array ( .

    да ваш вариант работает без проблем, видно у меня что то с массивом не то

    вот весь исходник

    У вас MyNewText имеет тип char[], а string.Join(string sep, string[] arr, int x, int y) вторым параметром хочет string[]

    В этом случае лучше делать так:

    Все гуд. Огромное спасибо )) учить и ещё раз учить основы ))


    Объединение элементов массива в одну строку
    Мое почтение, господа:) Прошу вас помочь мне пожалуйста объединить элементы массива в одну строку).


    Объединение массива с фамилиями и массива с именами в один массив
    Помогите с заданием, пожалуйста: Ввести с клавиатуры два массива: первый содержит 7 фамилий.


    Одномерные массивы. Вставка, удаление элементов массива. Перестановка элементов массива. Сортировка массива методом пузырька
    Помогите пожалуйста! Дан массив, состоящий из N букв латинского алфавита а) Заполнить массив.

    объединение массива
    Из данного массива и другого массива того же типа, но другой размерности сформируйте общий массив и.

    Объекты типа массив в 1С 8.3 представляют собой совокупность упорядоченных значений любого типа, в том числе и типа «массив», что в свою очередь позволяет организовывать многомерные массивы. Идентификация значений осуществляется по индексам, нумерация которых начинается с «0».

    Создание массива

    Синтаксис:

    Примеры:

    Добавление элементов в массив

    Примеры:


    Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
    Попробуйте бесплатно по ссылке >>



    Получение значения элемента по индексу

    Поиск в массиве 1С

    Присвоение значений элементам массива

    Примеры:

    Как узнать количество элементов массива (размер массива)

    Перебор массива 1С

    Примеры:

    Перебор всех элементов двумерного массива

    Примеры:

    Удаление элементов из массива

    Примеры:

    Как разложить строку в массив


    Пример преобразования массива в список значений


    Пример преобразования массива в таблицу значений


    Сортировка массива 1С разными способами

    Примеры:

    Как свернуть массив в 1С

    Пример:


    Поддержите нас, расскажите друзьям!

    СПРОСИТЕ в комментариях!

    Услуги 1С

    Наш канал на Youtube


    При использовании данного сайта, вы подтверждаете свое согласие на использование файлов cookie в соответствии с настоящим уведомлением в отношении данного типа файлов. Если вы не согласны с тем, чтобы мы использовали данный тип файлов, то вы должны соответствующим образом установить настройки вашего браузера или не использовать сайт.

    Отправляя любую форму на сайте, вы соглашаетесь с политикой конфиденциальности данного сайта.

    Читайте также: