|
Как собрать строку из массива 🠗 (Asmody 20.03.2016 21:02) | ☑ | ||
---|---|---|---|---|
0
ФруктовыйКефир
20.03.16
✎
11:13
|
Добрый день, подскажите как собрать в строку значение динамического массива( кол-во элементов массива генерируется функцией).
|
|||
1
Chameleon1980
20.03.16
✎
11:18
|
чегой?
|
|||
2
Лефмихалыч
20.03.16
✎
11:19
|
Строка = "";
Для каждого Значение из ДинамическийМассив Цикл Строка = Строка + Значение; КонецДля |
|||
3
Chameleon1980
20.03.16
✎
11:19
|
циклом, вестимо
|
|||
4
kosts
20.03.16
✎
11:49
|
(0) Я сам не пробовал, но попробуй так (со списком значений вроде у кого-то прокатывало).
Строка = "" + ДинамическийМассив; |
|||
5
ФруктовыйКефир
20.03.16
✎
12:12
|
(2) Это понятно, но он мне вернет значение последнего элемента, а мне нужно, что бы цикл вернул в строку значение всех элементов
|
|||
6
ФруктовыйКефир
20.03.16
✎
12:13
|
Условный код :
Процедура СформироваСтроку() КолВоСимволов = 4; Строка = Новый Массив; Для сч = 0 По КолВоСимволов цикл Строка.Добавить(СоздатьСтрокуИзASCI); КонецЦикла; КонецПроцедуры Функция СодатьСтрокуИзASCI () СоздатьСимвол = Новый ГенераторСлучайныхЧисел(); Возврат Строка(Символ(СоздатьСимвол.СлучайноеЧисло(Мин,Макс); КонецФункции |
|||
7
ФруктовыйКефир
20.03.16
✎
12:14
|
КолВоСимволов - 1
|
|||
8
Serginio1
20.03.16
✎
12:37
|
Лучше использовать ЗаписьXML
Процедура ВывестиВремя(врап,stopWatch) ts = stopWatch.Elapsed; String=Врап.ПолучитьТип("System.String"); // Format and display the TimeSpan value. elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10,0); Сообщить(elapsedTime); КонецПроцедуры Процедура StringBuilderНажатие(Элемент) // Вставить содержимое обработчика. врап=новый COMОбъект("NetObjectToIDispatch45"); КоличествоИтераций=200000; stopWatch = Врап.СоздатьОбъект("System.Diagnostics.Stopwatch"); стр=""; НачВремя=ТекущаяДата(); stopWatch.Start(); Для сч=1 по КоличествоИтераций Цикл стр=стр+Строка(сч); КонецЦикла; stopWatch.Stop(); ВремяВыполнения=ТекущаяДата()-НачВремя; Сообщить("Конкатенация ="+ВремяВыполнения+" сек. ДлинаСтр="+СтрДлина(Стр)); ВывестиВремя(врап,stopWatch); стр=""; НачВремя=ТекущаяДата(); stopWatch.Restart(); SB = врап.СоздатьОбъект("System.Text.StringBuilder"); Для сч=1 по КоличествоИтераций Цикл SB.Append(Строка(сч)); КонецЦикла; стр=SB.ToString(); stopWatch.Stop(); ВремяВыполнения=ТекущаяДата()-НачВремя; Сообщить("StringBuilder ="+ВремяВыполнения+" сек. ДлинаСтр="+СтрДлина(Стр)); ВывестиВремя(врап,stopWatch); НачВремя=ТекущаяДата(); stopWatch.Restart(); ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); Для сч = 1 по КоличествоИтераций Цикл ЗаписьXML.ЗаписатьБезОбработки(Строка(сч)); КонецЦикла; Стр = ЗаписьXML.Закрыть(); stopWatch.Stop(); ВремяВыполнения=ТекущаяДата()-НачВремя; Сообщить("ЗаписьXML ="+ВремяВыполнения+" сек. ДлинаСтр="+СтрДлина(Стр)); ВывестиВремя(врап,stopWatch); //Конкатенация =96 сек. ДлинаСтр=1 287 896 //00:01:36.22 //StringBuilder =10 сек. ДлинаСтр=1 287 896 //00:00:09.91 //ЗаписьXML =4 сек. ДлинаСтр=1 287 896 //00:00:04.40 |
|||
9
Лефмихалыч
20.03.16
✎
13:51
|
(5) чего? В переменной Строка будут все значения, какие есть в массиве.
(8) да уж, на много лучше, ага. Дотнэты еще прикрути свои к этой задаче на 4 строчки. |
|||
10
Aleksey
20.03.16
✎
14:38
|
(9) Так вроде как в и (8) вроде немного строк
ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); Для сч = 1 по КоличествоИтераций Цикл ЗаписьXML.ЗаписатьБезОбработки(Строка(сч)); КонецЦикла; Стр = ЗаписьXML.Закрыть(); |
|||
11
Aleksey
20.03.16
✎
14:39
|
Там просто 3 разных варианта + счетчик времени и сравнения 3-вариантов
|
|||
12
Serginio1
20.03.16
✎
16:20
|
(9) Там как раз сравнивается и вариант с StringBuilder.
|
|||
13
MishaD
20.03.16
✎
17:00
|
У меня иногда складывается ощущение, что Serginio1 написал бота на Дот.Нет, и этот бот во все темы, где написано про строки и HTTP пихает код на Дот.Нет, или ссылки на него же.
|
|||
14
Serginio1
20.03.16
✎
17:14
|
(13) Тв мне льстишь. Но стоит подумать.
Я просто привел пример из статьи. http://catalog.mista.ru/public/448668/ Где приводится пример, что соединять строки лучше через ЗаписьXML |
|||
15
Serginio1
20.03.16
✎
17:19
|
(13) Я же людям помогаю Пост запрос с передачей строки base64 в параметрах
|
|||
16
su_mai
20.03.16
✎
17:40
|
(0) c 8.3.7 есть методы:
СтрРазделить СтрСоединить |
|||
17
Лефмихалыч
20.03.16
✎
17:45
|
(15) больше похоже на навязывание
|
|||
18
Записьдампа
20.03.16
✎
19:16
|
(15) Это тебе так кажется. На самом деле ты даже не удосужился понять, кто же является твоей целевой аудиторией.
Вместо того, чтобы разьяснять недотепам, которые два и два сложить не могут, предметную область (тот же http протокол), ты тупо даешь ссылки на свои статьи. Они и так простейший цикл написать не могут, а ты подсовываешь им еще одну одну прослойку-абстракцию, написанную на каком-то русско-английском диалекте и требующую регистрации COM-сервера. И как это оценивать, кроме как "навязвание"? |
|||
19
Serginio1
20.03.16
✎
19:30
|
(18) Ну ты же понимаешь, но не применяешь. Некоторые кстати понимают и берут на вооружение
http://catalog.mista.ru/public/434345/ |
|||
20
Записьдампа
20.03.16
✎
20:05
|
(19) Не спрыгивай. Персонально я потому и не применяю, что могу обойтись без этого барахла.
Так кто же является твоей целевой аудиторией? Для кого же ты вещаешь? Счастье всем, и чтобы, не дай бог, никто не ушел? =] |
|||
21
Asmody
20.03.16
✎
20:48
|
Это задача по информатике для 8 класса.
|
|||
22
Serginio1
20.03.16
✎
21:30
|
(20) А с чего я должен спрыгивать?
Я показываю людям решение задачи, которые нельзя решить на 1С или проверку того, что у них не получается. Как с помощью .Net можно решать кучу задач без написания ВК. Например это не моя разработка но аналогичная. http://catalog.mista.ru/public/503059/ Но вот интересно почему это то тебя так коробит? |
|||
23
VladimirVK120
20.03.16
✎
22:33
|
(22) Скрин в личке глянь.
|
|||
24
Записьдампа
20.03.16
✎
22:56
|
(22) Меня не коробит. Я просто тебя информирую, как ты выглядишь со стороны.
|
|||
25
Serginio1
20.03.16
✎
23:34
|
(24) Спасибо. Учту.
|
|||
26
Serginio1
20.03.16
✎
23:44
|
(24) На самом деле я делюсь тем, на что потратил кучу времени. И оно реально помогает мне в работе. А например в 7.7 так она применяется на каждом шагу.
Просто смотрю, как люди мучаются, что легко сделать используя классы .Net |
|||
27
ФруктовыйКефир
21.03.16
✎
11:34
|
Всем спасибо, вопрос решен. Я еще учусь 1с, в PHP есть предопределенные функции для сбора элементов массива в одну строку, вот почему и спросил. Просто я искал функцию, а не цикл foreach...
|
|||
28
Xecutor
23.03.16
✎
13:34
|
СтрСоединить()
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |