Гость
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / работа со списками / 8 сообщений из 8, страница 1 из 1
25.12.2017, 22:46
    #39575745
michka92
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа со списками
Доброй ночи, уважаемые знатоки.

Пытаюсь самостоятельно изучать Caché, но вникнуть в некоторые моменты одному непросто
Можете поможете разобраться.. вот понял если есть готовый список, что он выглядит както
Set color = $ListBuild("красный", "зеленый", "голубой")
а если постепенно заполнять список? например, в этот же добавить значение, еще один цвет?
я делаю так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 set color = $ListBuild("красный", "зеленый", "голубой") 
  w "Начальный список:"
  w color,!
  set color = $ListBuild("красный", "зеленый", "голубой")_$LB("фиолетовый")
  set dl=$ListLength(color)
  w "Цвета:"
  w color,!,"Длина строки:",dl,!


у меня просто не отображает корректно вывод ,скорее всего неправильно чтото понял.. скрин подкрепляю
...
Рейтинг: 0 / 0
26.12.2017, 07:32
    #39575797
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа со списками
>а если постепенно заполнять список? например, в этот же добавить значение, еще один цвет?

Списки можно объединять как строку. Вместо
Код: php
1.
set color = $ListBuild("красный", "зеленый", "голубой")_$LB("фиолетовый")


можно писать просто
Код: php
1.
set color = color_$LB("фиолетовый")



Другой вопрос что через простой write (w) списки не отображаются, так как являются бинарными строками, для "отладки" списки следует выводить через zwrite (zw)
...
Рейтинг: 0 / 0
26.12.2017, 07:46
    #39575802
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа со списками
а если использовать преобразование к строке: w $LTS(color),!
как будет выводиться?
...
Рейтинг: 0 / 0
26.12.2017, 08:30
    #39575829
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа со списками
Аленочкаа если использовать преобразование к строке: w $LTS(color),!
как будет выводиться?
Так

Код: javascript
1.
2.
3.
4.
VERS>set color = $ListBuild("красный", "зеленый", "голубой")
 
VERS> w $LTS(color),!
красный,зеленый,голубой
...
Рейтинг: 0 / 0
26.12.2017, 17:26
    #39576310
eduard93
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа со списками
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
>set color = $ListBuild("красный", "зеленый", "голубой")
>zw color
color=$lb("красный","зеленый","голубой")

>set $list(color, 7) = "синий"
>zw color
color=$lb("красный","зеленый","голубой",,,,"синий")
 
>set color = color _ $lb("белый")
>zw color
color=$lb("красный","зеленый","голубой",,,,"синий","белый")
...
Рейтинг: 0 / 0
26.12.2017, 20:59
    #39576404
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа со списками
а еще есть обратная функция $LFS("красный,желтый,зеленый") и правое присваивание ( есть в примере выше ), можно использовать вместе с функцией $LL
...
Рейтинг: 0 / 0
27.12.2017, 09:25
    #39576538
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа со списками
Наверное стоит еще заметить что упомянутая функция $listtostring очень не любит NULL значений

На списке приведенном в пример eduard93

Код: php
1.
color=$lb("красный","зеленый","голубой",,,,"синий","белый")



получите ошибку <NULL VALUE>, ибо отсутствующий элемент списка не приравнивается пустой строке

Для примера вот что делает $listfromstring

Код: php
1.
2.
zw $listfromstring("красный,зеленый,голубой,,,,синий,белый")
$lb("красный","зеленый","голубой","","","","синий","белый")
...
Рейтинг: 0 / 0
27.12.2017, 10:21
    #39576583
Александр Коблов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа со списками
Ptn,

третий параметр в $ListToString как раз отвечает за обработку NULL-значений:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
USER>set color=$lb("красный","зеленый","голубой",,,,"синий","белый")
 
USER>write $listtostring(color,",",1)
красный,зеленый,голубой,,,,синий,белый
USER>write $listtostring(color,",",0)
 
WRITE $LISTTOSTRING(color,",",0)
^
<NULL VALUE>
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / работа со списками / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]