|
Как убрать начальные символы из номера объекта? | ☑ | ||
---|---|---|---|---|
0
Kamich
23.11.16
✎
10:24
|
Добрый день форумчане!
Подскажите плиз как правильно реализовать следующее: имеется Строка(Тип Строка) со значением ABC/DI/00000462 как правильно получить такой результат: 462 из этой строки? |
|||
1
Господин ПЖ
23.11.16
✎
10:25
|
выкинуть все не цифры сначала
потом выкинуть все ведущие нули |
|||
2
DrShad
23.11.16
✎
10:27
|
Строка(Число(Прав(<ТвояСтрока>, 8)))
|
|||
3
Timon1405
23.11.16
✎
10:29
|
в типовых для этого есть функция "ПолучитьНомерНаПечать"
|
|||
4
Митяйский
23.11.16
✎
10:29
|
(0) Где-то в СКД есть функция, обрезающая префикс.
|
|||
5
DrShad
23.11.16
✎
10:32
|
(4) в СКД нет такой функции
|
|||
6
Господин ПЖ
23.11.16
✎
10:33
|
(4) она просто из скд дергается
|
|||
7
Kamich
23.11.16
✎
10:37
|
(2) Встроенная функция может быть использована только в выражении. (Строка)
Строка<<?>>(Число(Прав(МояСтрока, 8))); |
|||
8
Kamich
23.11.16
✎
10:38
|
(2) У меня тип строки как ТипСтрока
|
|||
9
DrShad
23.11.16
✎
10:39
|
(8) ваше личное горе
|
|||
10
Kamich
23.11.16
✎
10:46
|
Всем спасибо!
А для остальных решил след.образом эту задачку: НоваяСтрока = Прав(МояСтрока,8); СтрокаБезВедущихнулей = НоваяСтрока; ПОка Найти(СтрокаБезВедущихнулей,"0") = 1 цикл СтрокаБезВедущихнулей = Сред(СтрокаБезВедущихнулей,2); КонецЦикла; |
|||
11
DrShad
23.11.16
✎
10:58
|
адский код
|
|||
12
Kamich
23.11.16
✎
11:00
|
(11)
есть предложение по лучше? |
|||
13
Filippov
23.11.16
✎
11:08
|
(12) Получше будет (2)
|
|||
14
Lazy Stranger
23.11.16
✎
11:11
|
интересно, что вернет код из (10) на номер К00005500 ?
|
|||
15
Wit77
23.11.16
✎
11:12
|
(12) Если не ошибаюсь, то преобразование к числу должно сработать и с нулями впереди: Число("00000462"). Можно их не убирать
|
|||
16
aka AMIGO
23.11.16
✎
11:14
|
Для одной строки писать обработку?
А не проще глазками посмотреть, да копипастом получить? :) А вообще-то я предполагал перебор символов последовательно .. но это в моей привычке написания г-кода :) |
|||
17
Kamich
23.11.16
✎
11:58
|
(14) хороший вопрос...
|
|||
18
Kamich
23.11.16
✎
11:58
|
(15) То же вариант
|
|||
19
Kamich
23.11.16
✎
11:58
|
(16) нет не для одной
|
|||
20
azernot
23.11.16
✎
12:03
|
Функция ЦифрыИзСтроки(ИсходнаяСтрока)
НомерСимвола = 1; ИтоговаяСтрока = ""; Пока НомерСимвола <= СтрДлина(ИсходнаяСтрока) Цикл Символ = Сред(ИсходнаяСтрока, НомерСимвола, 1); Если Найти("0123456789", Символ) > 0 ТОгда ИтоговаяСтрока = ИтоговаяСтрока + Строка(Символ); КонецЕсли; НомерСимвола = НомерСимвола + 1; КонецЦикла; Возврат ИтоговаяСтрока; КонецФункции НомерЧислом = Число(ЦифрыИзСтроки(НомерСтрокой)); |
|||
21
Kamich
23.11.16
✎
12:21
|
(20) Спасибо)
|
|||
22
Kamich
23.11.16
✎
12:22
|
(20) Переделал код по короче:
Значение = Прав(МояСтрока,8); ОписаниеТипаЧисло = Новый ОписаниеТипов("Число"); НовыйНомер = Формат(ОписаниеТипаЧисло.ПривестиЗначение(Значение), "ЧГ=0"); |
|||
23
azernot
23.11.16
✎
12:28
|
(22) Ну, если тебе заранее известно, что правые 8 символов именно число, то вообще непонятно, в чём был вопрос.
|
|||
24
azernot
23.11.16
✎
12:29
|
+(23) Я бы ещё укоротил код
НовыйНомер = Прав(МояСтрока,8); |
|||
25
azernot
23.11.16
✎
12:31
|
Тьфу,
НовыйНомер = Число(Прав(МояСтрока,8)); |
|||
26
Митяйский
23.11.16
✎
14:28
|
(5) Пардон, я под СКД имел в виду БСП конечно же.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |