Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получить эл-т многмоерного массива не зная его размерность


Кевларвестов Семен ©   (2007-02-01 15:04:00) 

Добрый день!
Вот такая вот задача есть вариантный массив AResFun: variant;
Есть массив целых чисел AIntArr array of integer в котором указаны индексы нужного элемента.

Есть ли какая нибудь функция чтоб можно было б написать что то типа AResFun[AIntArr] и, собственно, получить нужный элемент? Так как размерность массива AResFun заранее неизвестна.


Anatoly Podgoretsky   (2007-02-01 22:02:00) [1]

Его надо в "бабский" коллектив, как меня, тогда поймет логику.


Zeqfreed   (2007-02-01 21:17:00) [2]

> Jeer ©   (01.02.07 16:06) [4]

> Опять, блин, бабсы со своей "бабской" логикой.

Настоящие мужчины не ошибаются, ага?


Кевларвестов Семен   (2007-02-01 20:02:00) [3]

не надо меня в могилу. Там сыро и червяки.
А на самом деле, как обычно, нужно справку читать - ибо есть функция VarArrayGet от которой становится легко и хорошо.


Anatoly Podgoretsky   (2007-02-01 19:47:00) [4]

> Elen  (01.02.2007 17:05:06)  [6]

Это предположение, вероятно далекое от истины, кроме того в вопросе речь о многомерных массивах, к тому же неисветного типа и даже неизвестно динамических или статических.
Но мне не нравится постановка задачи у автора, оторваные от массива индексы, верный путь в могилу и очень мучительный.


Anatoly Podgoretsky   (2007-02-01 19:45:00) [5]

> Elen  (01.02.2007 15:08:01)  [1]

High(AResFun); даст не размерность, а верхнею его границу. Length даст размерность, от которой правда толку мало.


Elen   (2007-02-01 17:05:00) [6]


> С учетом, что Вы do Врите( - размерность масива дает Length().


C учетом что массив скорее всего начинаться с 0, значит High и Length дадут одинаковые значения


Vlad Oshin   (2007-02-01 16:54:00) [7]

function GivEl(AResFun: variant; ar:array of integer):variant;
var
siz1:longint;
i:integer;
t:variant;
begin
siz1:=length(ar);
for i:=0 to siz1-1 do  begin
             t:=AResFun[ar[i]];
             AResFun:=t;
                        end;
result:=t;
end;


Jeer   (2007-02-01 16:06:00) [8]


> Elen ©   (01.02.07 15:08) [1]


> High(AResFun); даст размерность


Опять, блин, бабсы со своей "бабской" логикой.

С учетом, что Вы do Врите(- размерность масива дает Length().


Elen   (2007-02-01 15:29:00) [9]


>  кто ее знает - какая n будет.

for i:=low(массив) to high(массив) do Врите(массив[i]); Сколько бы не было элементов она пройдет их всех


Кевларвестов Семен   (2007-02-01 15:22:00) [10]

нет, ну дать то она ее даст, но как вытянуть элемент?

Я знаю только один способ: AResFun[AIntArr[0],...AIntArr[n]].

И это бы сработало, но к сожалению кто ее знает - какая n будет.

Вот собственно и вопрос можно ли как-то эти индексы вбивать автоматом?Причем, неизвестно сколько их там штук будет.


Elen   (2007-02-01 15:08:00) [11]


>  Так как размерность массива AResFun заранее неизвестна

High(AResFun); даст размерность


Наверх

Титульная страница Поиск, карта сайта Написать письмо