Страница 1 из 1
Массив
Добавлено: 02 Сентябрь 2005, 7:59
Андрей
Как в процессе работы программы определить размерность массива. Алгоритм доступа к произвольному элементу массива
Добавлено: 02 Сентябрь 2005, 9:18
Дед Пахом
можно через TUFO_CallInterface, я думаю, кажется, в нём все возможности есть. Подробнее смотри статьи Олега Руденко на этом сайте. Коротко - заводишь ANY-переменную, указываешь её на массив, а TUFO_CallInterface будет по её адресу.
Добавлено: 02 Сентябрь 2005, 9:44
softcreator
Вы чего ребята?! а MAXIMUM зачем?

Добавлено: 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 буквам циклы делать?

Добавлено: 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? Ломает проверять

И ответа вовсе не жду.

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

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