Имя: Пароль:
1C
1С v8
Как надежнее (многострочная строка)?
,
0 Старик Юзергад
 
06.06.13
16:21
Как надежнее (многострочная строка)?

СтрЗаменить(МногострочнаяСтрока, Символы.ПС," ")

Или

Для Счетчик = 1 По СтрЧислоСтрок(ИсходныйТекст) Цикл
   ТекСтрока = СтрПолучитьСтроку(ИсходныйТекст, Счетчик);
   ...
КонецЦикла;
1 Старик Юзергад
 
06.06.13
16:22
могут ли быть еще какие символы, вызывающие перенос строки, кроме ПС?
2 Fragster
 
гуру
06.06.13
16:22
вестимо,



первый способ



не всегда работает
3 Wobland
 
06.06.13
16:23
какое интересное или
4 Fragster
 
гуру
06.06.13
16:23
или мозг у меня :)
5 Fragster
 
гуру
06.06.13
16:23
а зачем вырезать переводы строки?
6 Старик Юзергад
 
06.06.13
16:26
(5) надо
7 Старик Юзергад
 
06.06.13
16:26
(5) Выполнить() глючит
8 quest
 
06.06.13
16:39
выполнить может глючить из-за чего угодно, но вот что бы из-за переноса строк - первый раз слышу.

а по теме -  у тебя может быть не только CR но и CR+LF (вот не помню как в символах он по русски называется)
9 Старик Юзергад
 
06.06.13
16:48
(8)
ТекстКода = "СтруктураЗначенийСтрок = Новый Структура("+ДетальныеЗаписи.КлючиСтруктуры+","+ДетальныеЗаписи.ЗначенияСтруктуры+");";

Выполнить(ТекстКода);
10 acsent
 
06.06.13
16:54
(9) так у тебя ковычек наверно не хватает
11 Старик Юзергад
 
06.06.13
16:56
(10) в ДетальныеЗаписи.ЗначенияСтруктуры попадает текст глючный
12 acsent
 
06.06.13
16:59
(11) а зачем так через жпо структуры создавать?
13 quest
 
06.06.13
17:10
(9) где-то в полях есть кавычки - экранирй их и будет счастье. И да - присоеденюсь к (12) -нахрена так сложно?
14 Старик Юзергад
 
06.06.13
17:14
(12) приведи другой пример создания структуры из ТекстСписокКлючей и ТекстЗначенияКлючей?
15 quest
 
06.06.13
17:22
(14) что из себя представляет ТекстСписокКлючей и ТекстЗначенияКлючей?
16 Старик Юзергад
 
06.06.13
17:42
(15)
"Ключ1, Ключ2, Ключ3"
"Значение1, Значение2, Значение3"
17 Fragster
 
гуру
06.06.13
17:43
(16)во всех типовых есть преобразование строки с разделителями в массив...
18 Старик Юзергад
 
06.06.13
17:44
(17) а зачем мне массив?
19 acsent
 
06.06.13
17:45
Как минимум просто написать
СтруктураЗначенийСтрок = Новый Структура(ДетальныеЗаписи.КлючиСтруктуры, ДетальныеЗаписи.ЗначенияСтруктуры)
20 Старик Юзергад
 
06.06.13
17:45
(19) ну попробуй, напиши
21 acsent
 
06.06.13
17:45
а хотя нет, так не пойдет
22 acsent
 
06.06.13
17:46
а откуда эти значения в строке то беруться?
23 Старик Юзергад
 
06.06.13
17:46
(22) со станции космической связи присылают
24 quest
 
06.06.13
17:46
а у структуры есть метод вставить - и ненадо никаких выполнить. Кстати ругаться у тебя еще может на отсутствие переменной СтруктураЗначенийСтрок тут вычислить надо бы, или СтруктураЗначенийСтрок = неопределено перед твоим выполнить
25 Старик Юзергад
 
06.06.13
17:48
(24) переменная выше определена
26 quest
 
06.06.13
17:52
(18) с массивом - проще.
Предположим ты сумел как-тло написать функцию преобразующую строку в массив . тогда твой код ставновиться тривиальным
МассивКлючей = ВМассив(ДетальныеЗаписи.КлючиСтруктуры);
МассивЗначений = ВМассив(ДетальныеЗаписи.ЗначенияСтруктуры);

для х = 0 по МассивКлючей.ВГранница() -1 цикл
СтруктураЗначенийСтрок.Вставить(МассивКлючей[х],МассивЗначений[х])
конеццикла

Причем в этой функции ВМассив ты сможешь правильнее разобрать строку (учесть и переводы строк и кавычки и прочие неприятности)
27 acsent
 
06.06.13
17:52
тут еще нужно кавычки правильно отрабатывать
28 Старик Юзергад
 
06.06.13
17:55
(26) спасибо, возьму на заметку
29 quest
 
06.06.13
18:03
а вообще - попроси что бы тебе хмл присылали с космической станции... проще работать
30 Старик Юзергад
 
06.06.13
18:15
(29) они по старинке работать привыкли
31 Икогнито
 
06.06.13
19:49
(29) да, ты прав. Пожалуй, завтра выкину Выполнить() и сделаю как ты посоветовал.
32 Икогнито
 
06.06.13
19:56
(26) Что это такое: МассивКлючей = ВМассив(ДетальныеЗаписи.КлючиСтруктуры);

Нету такого в СП!!!
33 quest
 
06.06.13
21:30
(32) ну нету - так напиши. Ты же программмист 1С - а это звучит гродо
Независимо от того, куда вы едете — это в гору и против ветра!