Страница 1 из 1

Массив в строку

Добавлено: 18 янв 2022, 16:22
DrScorpion86
Подскажите, пожалуйста, как перевести весь массив в строку?
Т.е. Имеется массив из 100 значений (индекс 0 = значение 0, индекс 1 = значение 1, индекс 2 = значение 2, .... индекс 99 = значение 99)
этот массив нужно записать в переменную(String) такого вида - значение 0, значение 1, значение 2, .... значение 99
При этом, если в массиве нет значение (например индекс 42 = "пустая строка"), то в переменную должно записаться "undefined"(да в принципе можно любое слово/знак).

Массив в строку

Добавлено: 18 янв 2022, 17:12
Dryundel
Так обычное сложение строк. Складываешь элементы массива плюс запятые. Волшебного блока для этого нет.

Массив в строку

Добавлено: 18 янв 2022, 18:24
AlexCrane
[ref]DrScorpion86[/ref], Попробуй
Новая версия сдесь viewtopic.php?p=111436#p111436

Массив в строку

Добавлено: 19 янв 2022, 08:18
DrScorpion86
AlexCrane писал(а): 18 янв 2022, 18:24 [ref]DrScorpion86[/ref], Попробуй
Массив в строку.flp
Шикарно! То что нужно :smile9:

Массив в строку

Добавлено: 19 янв 2022, 09:05
Sancho
Имхо.
[ref]AlexCrane[/ref], Ваша помощь очень востребована пользователями.
Но такие простые решения реализуются средствами flp.
Давно замечаю, что народу проще попросить сделать готовый блок, чем самому попробовать сложить несколько блоков в цепочку. Печально.
Ещё раз замечу - сугубо моё мнение.

Массив в строку

Добавлено: 19 янв 2022, 10:10
aidar_i
Sancho писал(а): 19 янв 2022, 09:05 Имхо.
[ref]AlexCrane[/ref], Ваша помощь очень востребована пользователями.
Но такие простые решения реализуются средствами flp.
Давно замечаю, что народу проще попросить сделать готовый блок, чем самому попробовать сложить несколько блоков в цепочку. Печально.
Ещё раз замечу - сугубо моё мнение.
Не суди уж его так строго, он блок не просил же, спросил как сделать. Можно было показать в флпроге или послать.... изучать матчасть. И его вопрос решается без экстрасенсов :)

Массив в строку

Добавлено: 19 янв 2022, 13:31
Dryundel
Sancho писал(а): 19 янв 2022, 09:05 Давно замечаю, что народу проще попросить сделать готовый блок, чем самому попробовать сложить несколько блоков в цепочку.
Полностью согласен.
DrScorpion86 писал(а): 19 янв 2022, 08:18 Можно было показать в флпроге или послать...
Дык была же уже подсказка.
AlexCrane писал(а): 18 янв 2022, 18:24 [ref]DrScorpion86[/ref], Попробуй
Массив в строку.flp
А теперь в защиту автора.
Сделал таки волшебный блок. :)
Ай млодца.
Конечно же этот блок займёт гораздо меньше памяти МК нежели "веревочка со стрингами" из 99 значений средствами FLProg. Цикл однако.
Подобный блок уже давно напрашивался.
[ref]AlexCrane[/ref], не останавливайся. Продолжи мысль и дополни его склеиванием цифровых значений без использования стрингов.
И в конце то концов выставляй уже R-триггеры внутрь блоков где необходимо. Постоянно на тебя ворчу за это, про себя правда.
А вообще уже Давненько мысль бродит дополнить набор блоков для работы с массивами.
К примеру сделать нормальный стек, а то в штатном вложить элемент можно, а вот забрать нельзя. Буфер FIFO надо бы сделать нормальный. Склейка массивов тоже не помешает.
Многомерный массив ещё хочется и динамический тоже.
Чёт меня понесло... :smile171:

Массив в строку

Добавлено: 19 янв 2022, 14:00
Ingwar
Dryundel писал(а): 19 янв 2022, 13:31 А вообще уже Давненько мысль бродит дополнить набор блоков для работы с массивами.
К примеру сделать нормальный стек, а то в штатном вложить элемент можно, а вот забрать нельзя. Буфер FIFO надо бы сделать нормальный. Склейка массивов тоже не помешает.
Многомерный массив ещё хочется и динамический тоже.
В догонку - блок для заполнения массива копипастом (с каким нибудь разделителем)... :smile38:

Массив в строку

Добавлено: 19 янв 2022, 15:48
AlexCrane
[ref]DrScorpion86[/ref], Исправил блок. Добавил разделитель. Потестируй
Массив в строку v1.2.flp
(исправленный)
Sancho писал(а): 19 янв 2022, 09:05 Но такие простые решения реализуются средствами flp.
Возможно, я учился расставлять кубики изучая чужие проекты, потом научился делать блоки изучая чужие блоки. Может и мои блоки пойдут кому-то в пользу
Dryundel писал(а): 19 янв 2022, 13:31 И в конце то концов выставляй уже R-триггеры внутрь блоков где необходимо.
Там где это необходимо пусть решают пользователи, я на входе всегда подсказываю значком _|_ , что тут нужен RTrig
Dryundel писал(а): 19 янв 2022, 13:31 К примеру сделать нормальный стек, а то в штатном вложить элемент можно, а вот забрать нельзя. Буфер FIFO надо бы сделать нормальный. Склейка массивов тоже не помешает.
Многомерный массив ещё хочется и динамический тоже.
Помедленнее, я не успеваю записывать....

Массив в строку

Добавлено: 19 янв 2022, 15:49
DrScorpion86
Ingwar писал(а): 19 янв 2022, 14:00 В догонку - блок для заполнения массива копипастом (с каким нибудь разделителем)... :smile38:
Вот это, как раз, не сложно сделать:)
arr01.jpg

[ref=#ff8000]Sancho[/ref], [ref=#000080]aidar_i[/ref], [ref]Dryundel[/ref],
Раз 10 просмотрев все стандартные блоки понял, что на реализации задуманного можно заблудится.
arr01.jpg
Изучаю щас Javascript и знаю, что с помощью циклов можно перебрать массив и сделать с ним всё что угодно:)
Но т.к. я ещё не изучал синтаксис С и создания пользовательских блок, обратился за помощью:)

А вот и он... тот самый цикл перебора массива и записи его в другую переменную:)
arr03.jpg

Массив в строку

Добавлено: 19 янв 2022, 15:56
Dryundel
AlexCrane писал(а): 19 янв 2022, 15:48 Там где это необходимо пусть решают пользователи, я на входе всегда подсказываю значком _|_ , что тут нужен RTrig
Если он нужен в 100% случаев нафига подсказывать? Логичней "укомплектовать". ИМХО
AlexCrane писал(а): 19 янв 2022, 15:48 Помедленнее, я не успеваю записывать....
:D Расслабься. Часть из этих пожеланий к Автору.

Отправлено спустя 1 минуту 53 секунды:
DrScorpion86 писал(а): 19 янв 2022, 15:49 Вот это, как раз, не сложно сделать:)
Не про то речь идет. Суть в том, что бы изначально заполнить массив из какой нибудь таблицы копипастом, а не набивать ручками.

Массив в строку

Добавлено: 19 янв 2022, 16:03
Ingwar
Dryundel писал(а): 19 янв 2022, 15:56 Не про то речь идет. Суть в том, что бы изначально заполнить массив из какой нибудь таблицы копипастом, а не набивать ручками.
:yes:

Массив в строку

Добавлено: 19 янв 2022, 16:07
DrScorpion86
AlexCrane писал(а): 19 янв 2022, 15:48 [ref]DrScorpion86[/ref], Исправил блок. Добавил разделитель. Потестируй
Массив в строку v1.2.flp
ФЛПрог 7.4.2
arr04.jpg
Test_7_4_2_Массивы.zip

Массив в строку

Добавлено: 19 янв 2022, 16:27
AlexCrane
[ref]DrScorpion86[/ref], Недосмотрел, исправил, перекачай выше viewtopic.php?f=112&t=7843&p=111436#p111436

Массив в строку

Добавлено: 19 янв 2022, 16:46
DrScorpion86
[ref]AlexCrane[/ref], Весчь!!! :smile9: :smile9:
arr05.jpg
всё выводится на вэб интерфейс :)
Screenshot_2022-01-19-16-42-33-213_com.android.chrome.jpg

Массив в строку

Добавлено: 19 янв 2022, 19:47
Sancho
Dryundel писал(а): 19 янв 2022, 13:31 Конечно же этот блок займёт гораздо меньше памяти МК нежели "веревочка со стрингами" из 99 значений средствами FLProg. Цикл однако.
DrScorpion86 писал(а): 19 янв 2022, 15:49 Раз 10 просмотрев все стандартные блоки понял, что на реализации задуманного можно заблудится.
А ежели всё-таки из кубиков?
Не проверял.

Отправлено спустя 3 минуты 36 секунд:
Для понимания возможностей кубиков и плат

Массив в строку

Добавлено: 19 янв 2022, 20:21
Dryundel
Sancho писал(а): 19 янв 2022, 19:47 А ежели всё-таки из кубиков?
Эко ты изъе.. умудрился. :)
Работает в принципе.
Но ...
Есть несколько НО.
1. Объяснить весь этот компот новичку довольно сложно. Сложней чем написать блок.
2. Требовалось вводить undefined если строка (этемент) пустая. Стринговый массив на входе видимо.
Можно и эту проверку было добавить, не спорю. Но как все это объяснить? С ума сойдешь.
Конечно, понимая что такое циклы, зная их синтаксис, да еще и четко зная что плата может быть циклом можно и умудриться, ах да, правильно, умудриться.