Объединить элементы массива в строку 1с
Существует ряд задач, для решения которых массив, содержащий строковые данные, необходимо преобразовать в строку. Содержащую разделители, после каждого элемента массива. Объединить в 1с массив в строку можно двумя способами:
- Использовать стандартную функцию СтрСоединить;
- Обойти массив циклом и сформировать строку вручную;
Массив в строку функцией СтрСоединить
Простой способ решения данной задачи. В функцию СтрСоединить передается два параметра: МассивСтрок и строковый Разделитель. На выходе получается строка, состоящая из элементов массива, между которыми установлен разделитель.
Пример 1. Массив содержащий элементы :
- «Обучение 1С»;
- «Разработка 1С»;
- «Программирование 1С».
Преобразовать в строку. В качестве разделителя использовать: «;».
В переменной СтрокаИзМассива будет содержаться текст: «Обучение 1С;Разработка 1С;Программирование 1С».
Строка в массив подстрок
Также стоит упомянуть об обратной функции, которая получает из строки массив. Это функция СтрРазделить. Для определения элементов массива используется разделитель.
Параметр ВключатьПустые указывает, следует ли добавлять в массив пустые строки. Они могут получиться в результате преобразования. По умолчанию его значение Истина.
Пример 2. Строку из предыдущего примера, преобразовать в массив. В качестве разделителя использовать: «;»
В результате будет получен массив, аналогичный указанному в Примере 1.
1с массив в строку циклом
Данный способ более сложный, но в то же время универсальный. Его суть заключается в обходе массива циклом и формировании строки вручную. Не стоит использовать данный метод, если у вас нет дополнительных условий для формирования строки.
Пример 3. Из массива сформировать строку. Перед добавлением элемента к строке, удалять из него пробелы. В качестве разделителя использовать «;».
Заменим, что в данном способе преобразования, необходимо удалять из строки последний разделитель. Для этого можно рассчитать новую длину строки, без учета разделителя. После чего обрезать строку функцией Сред.
Массив — это программная коллекция (объект встроенного языка), содержащая пронумерованную последовательность значений произвольного типа. Каждому элементу присваивается последовательный целочисленный номер — индекс, начинающийся с нуля. По индексу можно получить или установить значение элемента массива.
В 1С:Предприятие 8 существует два типа массивов:
- фиксированный массив — такой массив имеет фиксированный размер, заданный при его создании. Для фиксированного массива недоступно программное изменение размера, количества и последовательности элементов;
- обычный массив — такой массив имеет динамический размер и его верхний предел практически неограничен. Таким массивом можно произвольно оперировать из встроенного языка;
Сейчас мы рассмотрим обычные массивы.
Создание и инициализация элементов массива
Создание пустого массива выполняется с помощью оператора Новый :
Для добавления элементов в массив используется одноименный метод Массив.Добавить():
Каждый новый элемент помещается в конец массива. Чтобы создать массив с заданным размером, можно воспользоваться конструктором массива. Например, так:
Для доступа к отдельным элементам массива применяется операция разыменования: указывается имя переменной, объявленной как массив, а затем, в квадратных скобках, указывается индекс элемента: ИмяМассива[Индекс] . Такие конструкции можно указывать как слева от оператора присваивания:
Так и справа: в выражениях и в качестве параметров процедур и функций:
Границы массивов
Как было сказано выше, левая граница массива постоянна и всегда равно нулю (0). Верхняя граница напрямую связана с количеством элементов в массиве. Получить ее можно двумя способами:
- С использованием метода Массив.Количество() с последующим вычитанием 1;
- С использованием одноименного метода Массив.ВГраница();
Давайте рассмотрим распространенные операции с массивами
Перебор элементов массива
Для перебора (обхода) всех элементов массива обычно используется оператор цикла Для :
Либо оператор цикла Для Каждого :
Первый способ лучше использовать, если Вам необходимо получить одновременно и индекс, и значение массива. Второй способ больше подходит для ситуации, когда нужно только последовательно перебрать все значения массива. Использование второго способа повышает «читабельность кода».
Поиск в массиве
Для поиска значений в массиве можно воспользоваться одноименным методом Массив.Найти(). Он возвращает индекс найденного элемента или Неопределено , если таковой не был найден:
Строки в 1С 8.3 во встроенном языке 1с представляют собой значения примитивного типа Строка. Значения данного типа содержат строку в формате Unicode произвольной длины. Переменные строкового типа являются набором символов заключенных в кавычки.
Пример 1. Создадим строковую переменную с текстом.
Функции работы со строками в 1с 8.3
В данном разделе будут приведены основные функции, позволяющие изменять строки в 1с, либо анализировать информацию содержащуюся в них.
СтрДлина
СтрДлина(). Возвращает количество символов содержащихся в строке, переданной в параметре.
Пример 2. Посчитаем количество символов в строке «Привет мир!».
Итогом выполнения данного кода будет вывод на экран количества символов строки: 11.
СокрЛ
СокрЛ(). Отсекает незначащие символы, стоящие слева от первого значащего символа в строке.
Незначащие символы:
- пробел;
- неразрывный пробел;
- табуляция;
- возврат каретки;
- перевод строки;
- перевод формы (страницы).
Пример 3. Убрать все пробелы с левой стороны строки » мир!» и присоединить к ней строку «Привет «.
Итогом выполнения данного кода будет вывод на экран строки «Привет мир!».
СокрП
СокрП(). Отсекает незначащие символы, стоящие справа от первого значащего символа в строке.
Пример 4. Сформировать из строк «Привет » и » мир!» фразу «Привет мир!»
СокрЛП
СокрЛП(). Отсекает незначащие символы, стоящие справа от первого значащего символа в строке, также отсекает незначащие символы, стоящие слева от первого значащего символа в строке. Данная функция используется чаще предыдущих двух, так как она более универсальна.
Пример 5. Убрать незначащие символы стоящие слева и справа в наименовании контрагента.
Лев(, ). Получает первые символы строки, число символов указывается в параметре ЧислоСимволов. Если указанное количество символов превышает длину строки, то возвращается вся строка.
Пример 6. Пусть в структуре Сотрудник содержаться имя, фамилия и отчество сотрудника. Получить строку с фамилией и инициалами.
Прав(, ). Получает последние символы строки, число символов указывается в параметре ЧислоСимволов. Если указанное количество символов превышает длину строки, то возвращается вся строка.
Пример 7. Пусть в конце строковой переменной записана дата в формате «ггггммдд», получить строку с датой и преобразовать ее к типу Дата.
Сред(, , ). Получает подстроку из строки переданной в параметре Строка, начиная с символа номер которого указан в параметре НачальныйНомер и длиной переданной в параметр ЧислоСимволов. Нумерация символов в строке начинается с 1. Если в параметре НачальныйНомер указано значение, меньшее или равное нулю, то параметр принимает значение 1. Если параметр ЧислоСимволов не указан, то выбираются символы до конца строки.
Пример 8. Пусть в строковой переменной начиная с девятой позиции содержится код региона, следует получить его и записать в отдельную строку.
СтрНайти
СтрНайти(, , , , ). Осуществляет поиск указанной подстроки в строке, возвращает номер позиции первого символа найденной подстроки. Рассмотрим параметры данной функции:
- Строка. Исходная строка;
- ПодстрокаПоиска. Искомая подстрока;
- НаправлениеПоиска. Указывает направление поиска подстроки в строке. Может принимать значения:
- НаправлениеПоиска.СНачала;
- НаправлениеПоиска.СКонца;
Пример 9. В строке «Привет мир!» определить позицию последнего вхождения символа «и».
Итогом выполнения данного кода будет вывод на экран номера последнего вхождения символа «и»: 9.
ВРег(). Преобразует все символы указанной строки в 1с 8 к верхнему регистру.
Пример 10. Преобразовать строку «привет мир!» к верхнему регистру.
Итогом выполнения данного кода будет вывод на экран строки «ПРИВЕТ МИР!»
НРег(). Преобразует все символы указанной строки в 1с 8 к нижнему регистру.
Пример 11. Преобразовать строку «ПРИВЕТ МИР!» к нижнему регистру.
Итогом выполнения данного кода будет вывод на экран строки «привет мир!»
ТРег(). Преобразует строку следующим образом: первый символ каждого слова переводится в верхний регистр, остальные символы слова переводятся в нижний регистр.
Пример 12. Сделать заглавными первые буквы слов в строке «привет мир!».
Итогом выполнения данного кода будет вывод на экран строки «Привет Мир!»
Символ
Символ(). Получает символ по его коду в кодировке Unicod.
Пример 13. Добавим слева и справа в строку «Привет Мир!» символ ★
Итогом выполнения данного кода будет вывод на экран строки «★Привет Мир!★»
КодСимвола
КодСимвола(, ). Получает код символа в кодировке Unicode из строки указанной в первом параметре, расположенного в позиции указанной во втором параметре.
Пример 14. Узнать код последнего символа в строке «Привет Мир!».
Итогом выполнения данного кода будет вывод на экран кода символа «!» — 33.
ПустаяСтрока
ПустаяСтрока(). Проверяет состоит ли строка только из незначащих символов, то есть является ли она пустой.
Пример 15. Проверить является ли пустой строка состоящая из трех пробелов.
Итогом выполнения данного кода будет вывод на экран слова «Да» (строковое выражение логического значения Истина).
СтрЗаменить
СтрЗаменить(, , ). Находит в исходной строке все вхождения подстроки поиска и заменяет ее на подстроку замены.
Пример 16. В строке «Привет Мир!» заменить слово «Мир» на слово «Друзья».
Итогом выполнения данного кода будет вывод на экран строки «Привет Друзья!»
СтрЧислоСтрок
СтрЧислоСтрок(). Позволяет посчитать количество строк в многострочной строке. Для перехода на новую строку в 1с 8 используется символ ПС (символ перевода строки).
Пример 17. Определить число строк в тексте:
«Первая строка
Вторая строка
Третья строка»Итогом выполнения данного кода будет вывод на экран количества строк в тексте: 3
СтрПолучитьСтроку
СтрПолучитьСтроку(, ). Получает строку в многострочной строке по ее номеру. Нумерация строк начинается с 1.
Пример 18. Получить последнюю строку в тексте:
«Первая строка
Вторая строка
Третья строка»Итогом выполнения данного кода будет вывод на экран строки «Третья строка».
СтрЧислоВхождений
СтрЧислоВхождений(, ). Возвращает число вхождений указанной подстроки в строку. Функция чувствительна к регистру.
Пример 19. Определить сколько раз входит в строку «Строки в 1с 8.3 и 8.2» буква «с», вне зависимости от ее регистра.
Итогом выполнения данного кода будет вывод на экран числа вхождений: 2.
СтрНачинаетсяС
СтрНачинаетсяС(, ). Проверяет начинается ли строка переданная в первом параметре, со строки во втором параметре.
Пример 20. Определить начинается ли ИНН выбранного контрагента с цифры 1. Пусть в переменной Контрагент хранится ссылка на элемент справочника Контрагенты.
СтрЗаканчиваетсяНа
СтрЗаканчиваетсяНа(, ). Проверяет заканчивается ли строка переданная в первом параметре, на строку во втором параметре.
Пример 21. Определить заканчивается ли ИНН выбранного контрагента на цифру 2. Пусть в переменной Контрагент хранится ссылка на элемент справочника Контрагенты.
СтрРазделить
СтрРазделить(, , ). Разделяет строку на части по указанным символам-разделителям и записывает полученные строки в массив. В первом параметре хранится исходная строка, во втором строка содержащая разделитель, в третьем указывается, нужно ли записывать в массив пустые строки (по умолчанию Истина).
Пример 22. Пусть у нас есть строка содержащая числа разделенные символом «;», получить из строки массив чисел.
В результате выполнения будет получен массив с числами от 1 до 3-х.
СтрСоединить
СтрСоединить(, ). Преобразует массив строк из первого параметра в строку, содержащую все элементы массива через разделитель, указанный во втором параметре.
Пример 23. Используя массив чисел из предыдущего примера, получить исходную строку.
Прочитайте статью про работу с числами: Число в 1С 8.3 — функции работы с числами
Sample for String.Join(String, String[], int, - Первый используемый элемент массива value.
int - Число используемых элементов массива value.ввожу два этих дополнительных параметра
NewString = String.Join("",String,1,2);
и получаю на выходе вот этоОбъединение всех элементов массива и разделение элементов массива
оператор в паскале для объединения всех элементов массива и для разделения элементов массиваОбъединение элементов массива
Здравствуйте. Есть множество Set<Integer> array=,,,>. Нужно объединить элементы.объединение элементов многомерного массива
есть массив вида Array ( => Array ( => 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С
Пример:
Поддержите нас, расскажите друзьям!
СПРОСИТЕ в комментариях!
При использовании данного сайта, вы подтверждаете свое согласие на использование файлов cookie в соответствии с настоящим уведомлением в отношении данного типа файлов. Если вы не согласны с тем, чтобы мы использовали данный тип файлов, то вы должны соответствующим образом установить настройки вашего браузера или не использовать сайт.Отправляя любую форму на сайте, вы соглашаетесь с политикой конфиденциальности данного сайта.
Читайте также: