Имя: Пароль:
1C
1С v8
Большая переменная типа Строка
0 Nikoss
 
01.08.12
07:38
Есть список значений с большим кол-вом записей. Каждая запись это строка. Как можно побыстрее склеить все в одну переменную?
Сейчас делаю так:

Для каждого СтрокаСЗ Из СписокЗначений Цикл
   ОбщаяСтрока = ОбщаяСтрока + СтрокаСЗ.Значение;
КонецЦикла;

Что по скорости быстрее будет? Может массив или ТЗ с одной колонкой, вместо списка значений? (Конечно это все можно попробовать самому, но вдруг кто знает)
1 ДенисЧ
 
01.08.12
07:40
да эквипенисуально.
Всё одно будет
2 Живой Ископаемый
 
01.08.12
07:48
ЗаписьXML = Новый ЗаписьXML();
   ЗаписьXML.УстановитьСтроку();
   СериализаторXDTO.ЗаписатьXML(ЗаписьXML, СписокЗначений );
   СтрокаXML = ЗаписьXML.Закрыть();

   СтрокаXML= СтрЗаменить(СтрокаXML,"<Value xsi:type=""xs:string"">","");
   СтрокаXML= СтрЗаменить(СтрокаXML,"</Value>","");
       Сообщить(СтрокаXML);


останется


<Array xmlns="http://v8.1c.ru/8.1/data/core" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   sdgjklnksdg wsdgkmkgmksdf
   оитолитол  лолплавиывап  лолплоива
</Array>



Но можно красивее, но я еще не освоил XSLT
3 МихаилМ
 
01.08.12
08:33
4 H A D G E H O G s
 
01.08.12
08:50
ЗаписьТекста может и побыстрее быть
5 H A D G E H O G s
 
01.08.12
08:51
Жалко нельзя обратиться к конкретному символу строки по индексу, или привести массив символов/чисел к строке.
6 Serg_1960
 
01.08.12
09:17
Просто так :)

Функция СтрСред(Строка, НачальныйНомер, ЧислоСимволов,  НомерСтроки = 1)
   Возврат Сред(СтрПолучитьСтроку(Строка, НомерСтроки), НачальныйНомер, ЧислоСимволов);
КонецФункции

Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   Строка = "123(это строка)";
   Сообщить(СтрСред(Строка,1,3)); // "123"
   МногоСтрок = "123(это первая строка)" + Символы.ПС + "456(это вторая строка)" + Символы.ПС + "789(это третья строка)";
   Сообщить(СтрСред(МногоСтрок,1,3,3)); // "789"
   Возврат;
7 H A D G E H O G s
 
01.08.12
09:20
(6) Че это?
8 Maxus43
 
01.08.12
09:21
(7) это >>Просто так :)
9 Serg_1960
 
01.08.12
09:26
(7) Это пример написания своих "расширенний" функционала языка (во как загнул :)

Хочешь и твою "жалко нельзя" напишу :)
10 Serg_1960
 
01.08.12
09:29
PS: Внедрение ЗУПа начинал с того, что исходные первоначальные данные мне предоставили в виде форматированного разделителями текста, таблиц экцеля и файлов ворда. Прикольно было из вордовских ведомостей начисления зарплаты вытаскивать данные попредыдущим начислениям зарплаты :)
11 Nikoss
 
01.08.12
10:27
Из вот этой темы: Эффективный способ конкатенации строк в 1С

Взял вариант с ADODB.Stream: быстрее стало в 7 раз. Пока этого достаточно.

В (2), не стал проверять производительно этого метода. Не знаю что такое XDTO, быстрый пробег по СП сходу не дал понимания.

Всем спасибо! Будет необходимость еще больше ускорять процесс, вернусь к этой теме.