|
можно ли в запросе из массива строк вырезать одинаковую подстроку ?? | ☑ | ||
---|---|---|---|---|
0
lim9
11.03.12
✎
11:02
|
у меня массив строк, типа:
ск1, ск2, ...,ск999. Можно ли как-то запросом вырезать "ск", чтобы получить только значения цифр? |
|||
1
ProProg
11.03.12
✎
11:03
|
можно. разршаю.
|
|||
2
Reset
11.03.12
✎
11:03
|
Можно. Например, через функцию ПОДСТРОКА.
|
|||
3
Maxus43
11.03.12
✎
11:04
|
да нельзя имхо. подстрока ничего не даст, не знаем длины строки, а она переменная
|
|||
4
Maxus43
11.03.12
✎
11:05
|
в СКД можно попробовать. чистым запросом - нет.
Хотя не совсем понятно ещё что значит массив строк |
|||
5
Reset
11.03.12
✎
11:09
|
(3) У него написано в сабже "одинаковую" ;) Хотя хз что это значит, конечно. В примерах префиксы одинаковой длины, подробней задачу он не описывает)
|
|||
6
Maxus43
11.03.12
✎
11:11
|
(5) префиксы одинаковой, числа - нет. в подстроке надо начало и конец... а тут конец неизвестен.
лично мне непонятно что такое массив строк. каким образом МАССИВ оказался в запросе или что это вобще. строка "ск1, ск2" или ещё чего |
|||
7
Maxus43
11.03.12
✎
11:13
|
телепатия чего-то страдает сёдня
|
|||
8
Reset
11.03.12
✎
11:13
|
(6) ПОДСТРОКА(БлаБла, 2, 10000)
|
|||
9
Reset
11.03.12
✎
11:14
|
(8) Хотя это и некрасиво :)
|
|||
10
Reset
11.03.12
✎
11:15
|
(6) С остальным послностью согласен
|
|||
11
Капитан О
11.03.12
✎
11:15
|
(8) с третьей позиции
|
|||
12
Maxus43
11.03.12
✎
11:15
|
ну ждём автора. пусть раскроет тайну ск1, ск2, ...,ск999
|
|||
13
Reset
11.03.12
✎
11:16
|
(11) я от балды написал, НЕ к (0)
|
|||
14
aleks-id
11.03.12
✎
11:20
|
(13) забыл про максимальную длину 1024 ;)
|
|||
15
Maxus43
11.03.12
✎
11:21
|
в СКД ДлинаСтроки есть, можно там красивше сделать. Да и именно Массивы там можно крутить-вертеть :)
|
|||
16
lim9
11.03.12
✎
11:32
|
ск1..... ск999 - это просто коды справочника, которые "хорошие" пользователи понабивали как-попало вручную, вот теперь приходиться вводит нумерацию принудительную
|
|||
17
Reset
11.03.12
✎
11:34
|
(16) Имхо, рассмотри вопрос о полной перенумерации, т.к. строить алгоритмы на произвольно(руками пользователей) вбитых строках ненадежно
|
|||
18
Maxus43
11.03.12
✎
11:38
|
даже если не полностью нумерацию менять - в данной задаче запрос - не актуален. один фиг будеш получать объекты и менять код, т.е. запрос только для выборки элементов, а в цикле при обходе результата - играть с кодом как хочеш, во встроенном языке
|
|||
19
lim9
11.03.12
✎
11:38
|
(17) согласен
|
|||
20
lim9
11.03.12
✎
11:39
|
благодарю за помощчь! )
|
|||
21
DexterMorgan
11.03.12
✎
11:39
|
(16) Может поможет делал недавно для УТ11:
&НаСервере Функция ВернутьЦифрыИзСтроки(СтрокаПроверки, УдалитьЛидирующиеНули = Истина) Если ТипЗнч(СтрокаПроверки) <> Тип("Строка") Тогда Возврат ""; КонецЕсли; ЦифрыИзСтроки = ""; Для ё = 1 По СтрДлина(СтрокаПроверки) Цикл Символ = Сред(СтрокаПроверки, ё, 1); Если ЭтоЦифра(Символ) Тогда ЦифрыИзСтроки = ЦифрыИзСтроки + Символ; КонецЕсли; КонецЦикла; Если УдалитьЛидирующиеНули Тогда ЦифрыИзСтроки = СтроковыеФункцииКлиентСервер.УдалитьПовторяющиесяСимволы(ЦифрыИзСтроки, "0"); КонецЕсли; Возврат ЦифрыИзСтроки; КонецФункции &НаСервере Функция ЭтоЦифра(Символ) КодСимвола = КодСимвола(Символ); Возврат (КодСимвола >= 48 И КодСимвола <= 57) КонецФункции |
|||
22
Капитан О
11.03.12
✎
11:49
|
ЦифрыИзСтроки = СтроковыеФункцииКлиентСервер.УдалитьПовторяющиесяСимволы(ЦифрыИзСтроки, "0");
не знаю, что оно делает, но в середине все нули оставит? |
|||
23
DexterMorgan
11.03.12
✎
11:50
|
(22) Обижаешь =)
// Удаляет повторяющиеся символы слева/справа в переданной строке // // Параметры: // Строка - Строка - исходная строка, из которой необходимо удалить повторяющиеся символы // Символ - Строка - значение символа, который необходимо удалить // Режим - Строка - (необязательный) [Слева|Справа] режим добавления символов к исходной строке: слева или справа // Функция УдалитьПовторяющиесяСимволы(Знач Строка, Знач Символ, Знач Режим = "Слева") Экспорт Если ВРег(Режим) = "СЛЕВА" Тогда Пока Лев(Строка, 1)= Символ Цикл Строка = Сред(Строка, 2); КонецЦикла; ИначеЕсли ВРег(Режим) = "СПРАВА" Тогда Пока Прав(Строка, 1)= Символ Цикл Строка = Лев(Строка, СтрДлина(Строка) - 1); КонецЦикла; КонецЕсли; Возврат Строка; КонецФункции |
|||
24
Капитан О
11.03.12
✎
11:52
|
а третий параметр я не приметил ;)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |