|
Как разбить строку с разделителями на подстроки? |
☑ |
0
Вася Чез
11.07.13
✎
07:46
|
Что-то у меня мозг закипел. Сделал тут макет печатный для ЗУП, нужно представление адреса юридического адреса разбить по разным ячейкам. Я сделал, вот так:
Адрес = Контакты.Представление;
Строка = СтрЗаменить(Адрес, ",",Символы.ПС);
Для Счетчик = 1 По СтрЧислоСтрок(Строка) Цикл
Если Счетчик = 1 Тогда Часть1 = СтрПолучитьСтроку(Строка, Счетчик) КонецЕсли;
Если Счетчик = 2 Тогда Часть2 = СтрПолучитьСтроку(Строка, Счетчик) КонецЕсли;
Если Счетчик = 3 Тогда Часть3 = СтрПолучитьСтроку(Строка, Счетчик) КонецЕсли;
Если Счетчик = 4 Тогда Часть4 = СтрПолучитьСтроку(Строка, Счетчик) КонецЕсли;
Если Счетчик = 5 Тогда Часть5 = СтрПолучитьСтроку(Строка, Счетчик) КонецЕсли;
КонецЦикла;
Но это не совсем корректный вариант, потому что я знаю, что адрес у меня состоит из пяти частей, соответственно разбиваю на пять подстрок и пихаю их по разным ячейкам, но а вдруг в адресе будет ещё корпус заполнен или квартира, в общем как разбить строку с разделителем, если мы не знаем сколько будет слов разделенных запятой в адресе? может в массив загнать? есть примеры?
|
|
1
Cyberhawk
11.07.13
✎
07:49
|
На вопрос "в общем как разбить строку с разделителем" ты сам себе уже ответил: Строка = СтрЗаменить(Адрес, ",",Символы.ПС);
|
|
2
1Сергей
11.07.13
✎
07:51
|
Да, можно в массив. Да, примеры есть
|
|
3
Вася Чез
11.07.13
✎
07:52
|
ну полный вопрос звучит так: "Как разбить строку на подстроки,разделенные ",", когда нам неизвестно количество этих будущих подстрок?"
|
|
4
Вася Чез
11.07.13
✎
07:53
|
(2) что-то ничего вразумительного не нагуглил я, может вообще отдельную функцию написать?
|
|
5
Cyberhawk
11.07.13
✎
07:54
|
(3) ответ тот же, что в (1)
|
|
6
НаборДанных
11.07.13
✎
07:55
|
|
|
7
Вася Чез
11.07.13
✎
07:56
|
(6) спасибо, сейчас попробую
|
|
8
Cube
11.07.13
✎
07:59
|
(0) А что функция "РазложитьСтрокуВМассивПодстрок()" общего модуля "ОбщегоНазначенияЗК" не подходит?
|
|
9
НаборДанных
11.07.13
✎
08:03
|
(8)Конечно подходит, просто ТС работает в Индии и ему платят за кол-во строк кода)
|
|
10
1Сергей
11.07.13
✎
08:04
|
ничего вы не понимаете в квадратных колёсах
|
|
11
Вася Чез
11.07.13
✎
08:23
|
(8) о, спасибо, не знал про неё, а то велосипед изобретать уже начал
|
|
12
sunson
11.07.13
✎
09:18
|
Позор, Вася)
|
|
13
Serg_1960
11.07.13
✎
09:25
|
(мимо проходя) Вообще-то в ЗУПе уже есть функционал, специализированный на работу с адресами.
|
|
14
Serg_1960
11.07.13
✎
09:45
|
(13) +
УправлениеКонтактнойИнформацией.ПолучитьСтруктуруАдресаИзСтроки()
РегламентированнаяОтчетность.РазложитьАдрес()
РегламентированнаяОтчетность.АдресСоответствуетТребованиям()
...
|
|
15
НаборДанных
11.07.13
✎
09:49
|
(14)Да он уже написал свою функцию в 100500 строк кода и заработал кучу денег за код, велокат с квадратными изобретен.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший