|   |   | 
| 
 | v7: Работа с строкой | ☑ | ||
|---|---|---|---|---|
| 0
    
        andrew231 20.06.13✎ 10:12 | 
        Добрый день! Подскажите пожалуйста как из строки "папка1~папка2~папка3" получить отдельные значения перем1="папка1" перем2="папка2" перем3="папка3"ю спасибо заранее!     | |||
| 1
    
        zak555 20.06.13✎ 10:14 | 
        СЗ = глРазложить(МояСтрочка, "~");     | |||
| 2
    
        Ёпрст гуру 20.06.13✎ 10:14 | 
        (0)
  сп = глРазложить("папка1~папка2~папка3" ,"~"); Сообщить(сп.ПолучитьЗначение(1)); Сообщить(сп.ПолучитьЗначение(2)); Сообщить(сп.ПолучитьЗначение(3)); | |||
| 3
    
        andrew231 20.06.13✎ 10:16 | 
        (1) (2) 
  у меня нет этой процедуры конф ПУБ | |||
| 4
    
        20130601 20.06.13✎ 10:16 | 
        НН="папка1~папка2~папка3"
  Папка1=Лев(НН,Найти(НН,"~")); | |||
| 5
    
        20130601 20.06.13✎ 10:17 | 
        и т.д     | |||
| 6
    
        zak555 20.06.13✎ 10:17 | 
        (3) не верю     | |||
| 7
    
        Mikeware 20.06.13✎ 10:17 | 
        (3)напиши     | |||
| 8
    
        oslokot 20.06.13✎ 10:18 | 
        (3) беда..     | |||
| 9
    
        Ёпрст гуру 20.06.13✎ 10:18 | 
        (3) дарю
  //****************************************************************************** // Функция глРазложить(Знач Стр, Разделитель = ",") Экспорт // // Параметры: // Стр - строка, которую необходимо разложить на подстроки. // Параметр передается по значению. // Разделитель - строка-разделитель, по умолчанию - запятая. // // // Возвращаемое значение: // список значений, элементы которого - подстроки // // Описание: // Функция "расщепляет" строку на подстроки, используя заданный // разделитель. Разделитель может иметь любую длину. // Если в качестве разделителя задан пробел, рядом стоящие пробелы // считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр // игнорируются. // Например, // глРазложить(",ку,,,му", ",") возвратит список значений из пяти элементов, // три из которых - пустые строки, а // глРазложить(" ку му", " ") возвратит список значений из двух элементов // Функция глРазложить(Знач Стр, Разделитель = ",") Экспорт СЗ = СоздатьОбъект("СписокЗначений"); Если Разделитель = " " Тогда Стр = СокрЛП(Стр); Пока 1=1 Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда СЗ.ДобавитьЗначение(Стр); Возврат СЗ; КонецЕсли; СЗ.ДобавитьЗначение(Лев(Стр,Поз-1)); Стр = СокрЛ(Сред(Стр,Поз)); КонецЦикла; Иначе ДлинаРазделителя = СтрДлина(Разделитель); Пока 1=1 Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда СЗ.ДобавитьЗначение(Стр); Возврат СЗ; КонецЕсли; СЗ.ДобавитьЗначение(Лев(Стр,Поз-1)); Стр = Сред(Стр,Поз+ДлинаРазделителя); КонецЦикла; КонецЕсли; КонецФункции // глРазложить | |||
| 10
    
        Рэйв 20.06.13✎ 10:18 | 
        Стр=СтрЗаменить("папка1~папка2~папка3","~",",");
  Сп=СоздатьОбъект("СписокЗначений"); Стр=Сп.ИзСтрокиСРазделителями(Стр): Сообщить(сп.ПолучитьЗначение(1)); Сообщить(сп.ПолучитьЗначение(2)); Сообщить(сп.ПолучитьЗначение(3)); | |||
| 11
    
        Рэйв 20.06.13✎ 10:20 | 
        Стр=Сп.ИзСтрокиСРазделителями(Стр):
  читать как Сп.ИзСтрокиСРазделителями(Стр): | |||
| 12
    
        andrew231 20.06.13✎ 10:23 | 
        (6) говорю нет её     | |||
| 13
    
        zak555 20.06.13✎ 10:24 | 
        (12) а если найду ?     | |||
| 14
    
        andrew231 20.06.13✎ 10:25 | 
        (13) у меня в глобальнике?     | |||
| 15
    
        andrew231 20.06.13✎ 10:26 | 
        (4)(9)(10) спасибо большое за помощь     | |||
| 16
    
        zak555 20.06.13✎ 10:28 | 
        (14) открыл 338 ПУБ -- в глобальном модуле есть функция глРазложить     | |||
| 17
    
        andrew231 20.06.13✎ 10:32 | 
        пуб версия 7.70.047 в глобальном модуле этой процедуры нет ;)     | |||
| 18
    
        zak555 20.06.13✎ 10:33 | 
        так ты бы уточнил, что это укр     | |||
| 19
    
        andrew231 20.06.13✎ 10:34 | 
        видимо укр немного обделили! а я не знал     | |||
| 20
    
        zak555 20.06.13✎ 10:36 | 
        (19) качать укр я не буду, но всё равно думаю, что это функция или аналогичная ей там пристуствует     | |||
| 21
    
        zak555 20.06.13✎ 10:36 | 
        *присутствует     | |||
| 22
    
        FlashC 20.06.13✎ 10:40 | 
        Функция глРазложить(Знач Стр, Разделитель = ",") Экспорт
  Список = СоздатьОбъект("СписокЗначений"); Длина = СтрДлина(Разделитель); Стр = СокрЛП(Стр); Поз = Найти(Стр, Разделитель); Пока 0 < Поз Цикл Список.ДобавитьЗначение(СокрП(Лев(Стр, Поз-1))); Стр = СокрЛ(Сред(Стр, Поз+Длина)); Поз = Найти(Стр, Разделитель); КонецЦикла; Список.ДобавитьЗначение(Стр); Возврат Список; КонецФункции // глРазложить() | |||
| 23
    
        andrew231 20.06.13✎ 10:43 | 
        возможно но её название не глРазложить     | |||
| 24
    
        andrew231 20.06.13✎ 10:44 | 
        (22) спасибо ;)     | |||
| 25
    
        Ковычки 20.06.13✎ 10:45 | 
        СтрЗаменить("папка1~папка2~папка3" ,"~", "" "");     | |||
| 26
    
        andrew231 20.06.13✎ 10:52 | 
        (25) это не то что нужно. 
  спасибо всем за помощь. проблема решена. Всего доброго ;) | |||
| 27
    
        Ковычки 20.06.13✎ 10:53 | 
        это именно то, что нужно     | |||
| 28
    
        Ёпрст гуру 20.06.13✎ 10:55 | 
        (25) он не поймет, как потом ЭТО использовать..     | |||
| 29
    
        andrew231 20.06.13✎ 10:58 | 
        (28) ну здесь и так способов уже достаточно ;) 
  (25) как в дальнейшем использовать, да я не знаю, но готов увидеть. спасибо! | |||
| 30
    
        Simod 20.06.13✎ 11:06 | 
        Такое еще забыли:
  ТекСтрока = СтрЗаменить("папка1~папка2~папка3", "~", РазделительСтрок); Для ТекПозиция = 1 По СтрКоличествоСтрок(ТекСтрока) Цикл Сообщить(СтрПолучитьСтроку(ТекСтрока, ТекПозиция)); КонецЦикла; | |||
| 31
    
        Ковычки 20.06.13✎ 11:07 | 
        (30) см (25) )     | |||
| 32
    
        Ёпрст гуру 20.06.13✎ 11:07 | 
        (30) это и есть в (25)     | |||
| 33
    
        FlashC 20.06.13✎ 11:07 | 
        (23) глРозкласти() чтоле? :-)     | |||
| 34
    
        Ковычки 20.06.13✎ 11:09 | 
        в ПУБ есть глРазложить     | |||
| 35
    
        FlashC 20.06.13✎ 11:10 | 
        да у него украинская )     | |||
| 36
    
        Simod 20.06.13✎ 11:12 | 
        (31)(32) Я в курсе, но так нагляднее.     | |||
| 37
    
        andrew231 20.06.13✎ 11:13 | 
        (33) щірий українець? глРозкласти все одно не має ;)     | |||
| 38
    
        vova1122 20.06.13✎ 11:16 | 
        (33) В Украинских конфах название процедур/функций также идут на русском языке     | |||
| 39
    
        FlashC 20.06.13✎ 11:18 | 
        народ - смайлы я просто так ставлю?     | |||
| 40
    
        andrew231 20.06.13✎ 11:32 | 
        (38) в (33) как бы пошутили...     | |||
| 41
    
        varelchik 20.06.13✎ 12:04 | 
        (0)
  Смотри внимательно! ПУБ 7.70.045 (глобальный модуль) Процедура глПарсить(Стр,Спис,Разделитель = ";") Экспорт Спис.УдалитьВсе(); СтрПарс = Стр; Инд = Найти(СтрПарс,Разделитель); Пока Инд<>0 Цикл ТекСтр = Сред(СтрПарс,1,Инд-1); СтрПарс = Сред(СтрПарс,Инд+1,СтрДлина(СтрПарс)-Инд); ИндРавно = Найти(ТекСтр,"="); Если ИндРавно = 0 Тогда Продолжить; КонецЕсли; Пар = Сокрлп(Сред(ТекСтр,1,ИндРавно-1)); Зна = Сокрлп(Сред(ТекСтр,ИндРавно+1,СтрДлина(ТекСтр)-ИндРавно)); Спис.ДобавитьЗначение(Зна,Пар); Инд = Найти(СтрПарс,Разделитель); КонецЦикла; КонецПроцедуры //глПарсить | |||
| 42
    
        Эльниньо 20.06.13✎ 12:24 | 
        Миста вам не швидка допомога тут.     | |||
| 43
    
        zak555 20.06.13✎ 12:43 | 
        (41) бу га га     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |