Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Как вытащить из строки числовое значение?

Как вытащить из строки числовое значение?
Я
   prilforreal
 
03.10.17 - 08:51
Доброго утра! Интересует такой вопрос, есть реквизит материал с типом строка, выглядит как "Мат Стандарт 240-501" первые 3 цифры (в данном случае 240) - ширина полотна, каким образом можно вытащить их в отдельную переменную?
 
 
   1c-bs
 
1 - 03.10.17 - 08:52
Парсить строку жеж!
   Филиал-msk
 
2 - 03.10.17 - 08:56
Посимвольно. Цифра? Не... Цифра? Не... О, цифра-цифра-цифра... Не... Ну и ладно, вот число и набралось.
   Рэйв
 
3 - 03.10.17 - 08:57
Строчка="чстото250-568,7899";
числа="0123456789";
Кол=СтрДлина(Строчка);
спДанные=Новый СписокЗначений;
Ч="";
Для н=1 По кол Цикл
    Сим=Сред(Строчка,н,1);
    Сообщить(Сим);
    Если Найти(числа,Сим)>0 Тогда
        Ч=Ч+Сим;
    Иначе
        Если Ч<>"" Тогда
            спДанные.Добавить(Число(Ч));
            Ч="";
        КонецЕсли;    
    КонецЕсли;    
КонецЦикла;    
Если Ч<>"" Тогда
    спДанные.Добавить(Число(Ч));
    Ч="";
КонецЕсли;    

спДанные.ВыбратьЭлемент();
   Рэйв
 
4 - 03.10.17 - 08:58
как пример
   prilforreal
 
5 - 03.10.17 - 08:58
(1) Будьте добры, разъясните) (2) Какой функцией, в какой процедуре? Я прошу прощения в 1с еще далеко не асс, потому интересуюсь)
   Филиал-msk
 
6 - 03.10.17 - 09:00
(5) Ну, это, в которой сам напишешь. Да.
   igorPetrov
 
7 - 03.10.17 - 09:03
(0) Регулярные выражения, раз  в 1С не "асс".
   DES
 
8 - 03.10.17 - 09:37
Перебирая последователь символы строки пока не встретишь цифру, кидай этот символ в другую переменную, пока не встретишь нецифру, потом пропуск одного символа, и опять кидаешь символы до конца строки в другую переменную
Потом
Ширина = Число(переменная1);
   Serg_1960
 
9 - 03.10.17 - 09:45
Эээ... включая режим дочерей офицеров "Здесь не всё так однозначно": автору нужно найти позицию символа "-" в строке и далее двигаясь к началу и к концу строки от этой позиции, собрать все символы в цифр в две переменных... вот как-то так для начала.
   Serg_1960
 
10 - 03.10.17 - 09:48
* мда... "собрать все символы в цифр в две переменных" --> "собрать цифровые символы в две переменные"
 
 Рекламное место пустует
   Волшебник
 
Модератор
11 - 03.10.17 - 09:50
(5) пишется "ас"
   vis_tmp
 
12 - 03.10.17 - 09:51
(11) Может, он имел в виду "ass"? )
   Пес Барбос
 
13 - 03.10.17 - 09:53
Все зависит от того где встречается "ширина полотна", если это всегда в конце наименования материала, то я бы искал позицию первого пробела справа (НаправлениеПоиска.СКонца) и "резал" до конца строки. и потом уже ее от начала до "-".

Если встречается в разных, то воспользовался бы
РазложитьСтрокуВМассивПодстрок(...) и там бы уже искал строку с цифрами и снова "резал" от начала до "-"
   Волшебник
 
Модератор
14 - 03.10.17 - 09:54
(12) Это совсем другое слово :)
   Numerus Mikhail
 
15 - 03.10.17 - 09:55
Делается в пару строк с помощью регулярки
   Serg_1960
 
16 - 03.10.17 - 10:14
Регулярка хороша если выражения регулярные. А если встретится "Мат.Стандарт-12 240-501 (ширина 240,05)"? :))
   Базис
 
17 - 03.10.17 - 10:43
Не надо разбирать строку, храните в новом реквизите или свойстве.
   DES
 
18 - 04.10.17 - 13:13
(16) он же определил формат строки
(17) ага, а где взять это свойство если не из строки?
   Fish
 
19 - 04.10.17 - 13:20
(18) "где взять это свойство если не из строки" - Вбить руками, конечно же :)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует