AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.04.2003, 16:13   #1  
blacky is offline
blacky
Участник
 
12 / 10 (1) +
Регистрация: 12.11.2002
Работа с массивами
Интересно, возможно ли узнать размер массива когда создан как динамический? Т.е. максимальный используемый индекс? А так же есть ли какой-нибудь более быстрый способ их заполнять? без использования:

PHP код:
int array [];
array [
1] = 3223;
array [
2] = 3233;
array [
3] = 5445;
array [
4] = 6553;
array [
5] = 3454
Старый 03.04.2003, 10:13   #2  
kalex is offline
kalex
Участник
 
132 / 20 (1) +++
Регистрация: 18.05.2002
Адрес: Москва
Узнать размер динамического массива нельзя. Можно узнать, сколько в нём зарезервировано элементов - dimOf() - обычно это число кратно 16.
Старый 03.04.2003, 10:47   #3  
Pavel is offline
Pavel
SAP
SAP
 
2,760 / 239 (13) ++++++
Регистрация: 14.12.2001
Адрес: Moscow
2kalex
Подскажи, каким образом реализуются многомерные массивы?
Старый 03.04.2003, 11:03   #4  
kalex is offline
kalex
Участник
 
132 / 20 (1) +++
Регистрация: 18.05.2002
Адрес: Москва
Это уже обсуждалось на форуме.
В чистом виде Аксапта многомерных массивов не поддерживает.
Можно извратиться с помощью вложенных контейнеров или адресации элементов одномерного массива (например int a[cols*rows]; a[row*cols+col] = 1).
Старый 03.04.2003, 11:26   #5  
Антон Солдатов is offline
Антон Солдатов
Соучастник
Аватар для Антон Солдатов
 
386 / 27 (1) +++
Регистрация: 29.12.2002
Адрес: Новосибирск
Цитата:
Изначально опубликовано kalex
Это уже обсуждалось на форуме.
В чистом виде Аксапта многомерных массивов не поддерживает.
Можно извратиться с помощью вложенных контейнеров или адресации элементов одномерного массива (например int a[cols*rows]; a[row*cols+col] = 1).
Если я не ошибаюсь, в Аксапте индекс массива начинается с 1,
и arr[0]=0; обнуляет все элементы.. Тогда, наверное, правильно будет писать
arr[(row-1)*cols + col]..
Старый 03.04.2003, 11:30   #6  
kalex is offline
kalex
Участник
 
132 / 20 (1) +++
Регистрация: 18.05.2002
Адрес: Москва
Да. Так правильней.
Старый 03.04.2003, 12:24   #7  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Можно написать свой класс - обертку над обычными массивами, а еще лучше над классом Array.
Когда то делал такое, но уже почему-то не найду
Старый 14.04.2003, 11:17   #8  
blacky is offline
blacky
Участник
 
12 / 10 (1) +
Регистрация: 12.11.2002
Что я совсем забыл про container-ы, ведь это было как раз то что надо
есть add, remove и length.
Старый 14.04.2003, 11:23   #9  
Антон Солдатов is offline
Антон Солдатов
Соучастник
Аватар для Антон Солдатов
 
386 / 27 (1) +++
Регистрация: 29.12.2002
Адрес: Новосибирск
в контейнере разнотипные данные хранятся, поэтому каждая запись "тяжелее" чем в массиве.
Старый 14.04.2003, 11:55   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
согласен, что тяжелее...

На всякий случай рекомендую документ Foundation Classes.doc, который находится в каталоге Technical Information на дистрибутивном диске.

Там описываются классы Axapta Foundation Classes - списки, стеки, очереди, map, struct, итераторы. А также новые возможности по работе с массивами.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Доступ к меню "Работа с документами" Kuat DAX: Администрирование 4 16.11.2007 17:07
Совместная работа заказчика и исполнителя в разных или одном слое? Кузин Владимир В. DAX: Программирование 6 08.08.2006 10:02
Работа с полями-массивами в отчете Dubinski Serguei DAX: Программирование 2 15.04.2004 17:03
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:33.