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

Массив

Добавлено: 02 Сентябрь 2005, 7:59
Андрей
Как в процессе работы программы определить размерность массива. Алгоритм доступа к произвольному элементу массива

Добавлено: 02 Сентябрь 2005, 9:18
Дед Пахом
можно через TUFO_CallInterface, я думаю, кажется, в нём все возможности есть. Подробнее смотри статьи Олега Руденко на этом сайте. Коротко - заводишь ANY-переменную, указываешь её на массив, а TUFO_CallInterface будет по её адресу.

Добавлено: 02 Сентябрь 2005, 9:44
softcreator
Вы чего ребята?! а MAXIMUM зачем? :D

Добавлено: 02 Сентябрь 2005, 12:35
Дед Пахом
а как узнать, сколько всего размерностей?

Добавлено: 03 Сентябрь 2005, 6:03
Admin
Народ, ну смотрите HELP иногда ...

Код: Выделить всё

Array BYTE,DIM(10,12)      !Define a two-dimensional array

  !For the above Array:   MAXIMUM(Array,1) returns 10
  !                       MAXIMUM(Array,2) returns 12

 CODE
 LOOP X# = 1 TO MAXIMUM(Array,1)    !Loop until end of 1st dimension
  LOOP Y# = 1 TO MAXIMUM(Array,2)   !Loop until end of 2nd dimension
   Array[X#,Y#] = 27                !Initialize each element to default
  END
 END

Добавлено: 03 Сентябрь 2005, 9:13
Дед Пахом
Array BYTE,DIM(10,12) !Define a two-dimensional array
ну и как ты определишь в рантайме, что массив именно двумерный? Кроме X# и Y# ещё по 24 буквам циклы делать? :D

Добавлено: 03 Сентябрь 2005, 9:23
Admin

Код: Выделить всё

LOOP
  W#+=1
  IF MAXIMUM(Array,W#) THEN E#+=1 ELSE BREAK END
END
E# = размер массива

Добавлено: 05 Сентябрь 2005, 9:46
Дед Пахом
да, как говорится, "будь проще, и народ к тебе потянется".
Кстати, а если массив окажется вовсе не массивом, MAXIMUM(Array,1) тоже вернёт 0? Ломает проверять :D И ответа вовсе не жду. :D

Добавлено: 05 Сентябрь 2005, 12:44
Admin
Ты еще спроси а если я класс передам или ссылку на него ... :)

Добавлено: 05 Сентябрь 2005, 15:04
Дед Пахом
проверил - во всех случаях возвращает 0.

Добавлено: 05 Сентябрь 2005, 15:51
Admin
Думаю тему можно закрывать...
Тот кто писал скорее всего уже понял все что ему нужно :)