Имя: Пароль:
1C
 
Найти и заменить подстроку
, ,
0 myr4ik07
 
25.01.16
11:54
Привет, есть код 0000000001, 000000000000010, ТР1000001, я хотел бы все с такого 0000000001 получить 1, а вот с такого 000000000000010 получить 10, то есть взять все слева до символа отличного от 0, а 0 заменять слева
1 myr4ik07
 
25.01.16
11:54
а там где ТР то ничего не трогать
2 GROOVY
 
25.01.16
11:55
Сделай это.
3 vicof
 
25.01.16
11:55
"я хотел бы"
хоти дальше
4 myr4ik07
 
25.01.16
11:56
пожалуйста :) должно быть первым, извините
5 vicof
 
25.01.16
11:57
(4) Это ничего не меняет
6 vicof
 
25.01.16
11:57
За 2000 на телефон я тебе напишу код
7 myr4ik07
 
25.01.16
11:57
(5) а жаль, ну и на этом спасибо
8 GreatOne
 
25.01.16
11:58
Найти первый символ не 0, дальше все оставить
9 aleks_default
 
25.01.16
11:58
(0) программирование не твое, если такие вопросы задаешь
10 Nuobu
 
25.01.16
11:59
(0) В запросе?
11 myr4ik07
 
25.01.16
12:00
(10) в массиве, в массиве коды елементов из запроса 00001, 00002 .... 00010
12 IlyaSR
 
25.01.16
12:00
Функция СтрокаВЧислоСправа(Знач ИсходнаяСтрока)
    ИсходнаяСтрока = СокрЛП(ИсходнаяСтрока);
    ДлинаСтроки = СтрДлина(ИсходнаяСтрока);
    Результат = "";
    ЗнакОтрицательный = Ложь;
    ЕстьДробнаяЧасть = Ложь;
    ЕстьЗакрСкобка = Ложь;
    
    Для НомерСимвола = 1 По ДлинаСтроки Цикл
        КодСимвола = КодСимвола(ИсходнаяСтрока, ДлинаСтроки+1-НомерСимвола);
        Если КодСимвола = 32 Или КодСимвола = 160 Тогда // Пробел или неразрывный пробел.
            // Пропуск (действие не требуется).
        ИначеЕсли КодСимвола = 41 Тогда // Закрывающая скобка.
            ЕстьЗакрСкобка = Истина;
            Если ПустаяСтрока(Результат) Тогда // Не было ещё числа.
                Продолжить;
            Иначе
                Прервать;
            КонецЕсли;
        ИначеЕсли КодСимвола = 45 Тогда // Минус
            ЗнакОтрицательный = Истина;
            Прервать;
        ИначеЕсли КодСимвола = 40 Тогда // открывающая скобка.
            Если НЕ ПустаяСтрока(Результат) И ЕстьЗакрСкобка Тогда
                Прервать;
            Иначе
                Продолжить;
            КонецЕсли;
        ИначеЕсли КодСимвола = 44 Или КодСимвола = 46 Тогда // Запятая или точка.
            Если ЕстьДробнаяЧасть И НЕ ПустаяСтрока(Результат) Тогда
                Прервать; // Разделитель уже был и цифры тоже, следовательно прервём поиск.
            ИначеЕсли ПустаяСтрока(Результат) Тогда
                Продолжить;
            КонецЕсли;
            ЕстьДробнаяЧасть = Истина;
            Результат = "."+ Результат;
        ИначеЕсли КодСимвола > 47 И КодСимвола < 58 Тогда // Число.
            Результат = Символ(КодСимвола)+ Результат;
        КонецЕсли;
    КонецЦикла;
    
    Если ЗнакОтрицательный Тогда
        Результат = "-"+ Результат;
    КонецЕсли;
    
    Попытка
        Возврат Число(Результат);
    Исключение
        Возврат 0
    КонецПопытки;
    
КонецФункции
13 Nuobu
 
25.01.16
12:03
(11) ПолучитьНомерНаПечать
14 Timon1405
 
25.01.16
12:04
ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать
в любой типовой
15 Timon1405
 
25.01.16
12:04
*БСП
16 myr4ik07
 
25.01.16
12:54
Функция УбратьНули(НомерСтрокой)
    Если Лев(НомерСтрокой, 1) = "0" Тогда
        Возврат УбратьНули(Прав(НомерСтрокой, СтрДлина(НомерСтрокой) - 1));
    Иначе
        Возврат НомерСтрокой;
    КонецЕсли;
КонецФункции

ИтоговаяСтрока = УбратьНули(Номер);
17 kittystark
 
25.01.16
12:54
через регулярные выражения делаешь замену по шаблону
^0+ на пустую строку
18 Nuobu
 
25.01.16
12:56
(16) ТР1000001
19 Temai
 
25.01.16
12:58
Где мой цикл?
20 hhhh
 
25.01.16
13:12
(18) читай (1)
21 Nuobu
 
25.01.16
13:19
(20) аа. Ну, а зачем, тогда создавать ветку на мисте ради функции в 9 строк?
22 Xapac
 
25.01.16
13:31
(21) так удобней
Независимо от того, куда вы едете — это в гору и против ветра!