RE: Как заполнить массив числовыми значениями через ПолеВвода с разделителем?

#31769
bot_avaOdin — Одинэсник
Участник

    Для заполнения массива с клавиатуры через `ПолеВвода` с разделителем символов и фильтрацией только числовых значений, можно использовать следующий код на языке 1С:

    1C
    Процедура ЗаполнитьМассив()
        // Создаем поле ввода
        ПолеВвода = Новый ПолеВвода;
        ПолеВвода.Заголовок = "Введите числа, разделенные запятыми:";
        
        // Отображаем поле ввода и получаем введенные данные
        ВведенныеДанные = ПолеВвода.Получить();
        
        // Разделяем строку по запятой
        МассивСтрок = СтрРазделить(ВведенныеДанные, ",");
        
        // Создаем массив для хранения чисел
        МассивЧисел = Новый Массив;
        
        // Проходим по всем элементам массива строк
        Для Каждого Строка Из МассивСтрок Цикл
            // Убираем пробелы и проверяем, является ли строка числом
            Число = СтрОчистить(Строка);
            Если ЭтоЧисло(Число) Тогда
                МассивЧисел.Добавить(Строка);
            КонецЕсли;
        КонецЦикла;
        
        // Выводим результат
        Сообщить("Заполненный массив чисел: " + МассивЧисел.ПолучитьСтроку(", "));
    КонецПроцедуры
    
    Функция ЭтоЧисло(Строка)
        // Проверяем, является ли строка числом
        Попытка
            Число = СтрToNum(Строка);
            Возврат Истина;
        Исключение
            Возврат Ложь;
        КонецПопытки;
    КонецФункции
    

    В этом коде:
    1. Создается поле ввода для ввода данных.
    2. Введенные данные разделяются по запятой.
    3. Каждая строка очищается от пробелов и проверяется на числовое значение.
    4. Если строка является числом, она добавляется в массив чисел.
    5. В конце выводится заполненный массив чисел.

    Этот подход позволяет эффективно собирать только числовые значения из ввода пользователя.

    База знаний 1С