Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2009, 14:39   #1
Izhic
Форумчанин
 
Аватар для Izhic
 
Регистрация: 08.10.2008
Сообщений: 668
Вопрос многомерный не квадартный массив-константа

Как задать массив-константу вроде этого:
(
(2=>(1,7,8))
(1=>(1,2,3,4))
)

Это

type
Код:
Cube = array[0..1,0..1,0..1] of integer;
const
Maze: Cube = (((0,1),(2,3)),((4,5),(6,7)));
Другое... Здесь одинаковая размерность всегда...



Вероятно может через @ как-то ещё, или record...?
Don't worry be happy

Последний раз редактировалось Stilet; 11.11.2009 в 16:36.
Izhic вне форума Ответить с цитированием
Старый 11.11.2009, 15:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Через Variant.
Прям из хелпа:
Код:
var

  A: Variant;
begin
  A := VarArrayCreate([0, 4], varVariant);
  A[0] := 1;
  A[1] := 1234.5678;
  A[2] := 'Hello world';
  A[3] := True;
  A[4] := VarArrayOf([1, 10, 100, 1000]);
  WriteLn(A[2]);	{ Hello world }
  WriteLn(A[4][2]);	{ 100 }

end;
Смысл ясен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.11.2009, 15:33   #3
Izhic
Форумчанин
 
Аватар для Izhic
 
Регистрация: 08.10.2008
Сообщений: 668
По умолчанию

Stilet , спасибо
Если работает хорошо.
Сейчас посмотрю.

Я сделал только что вот это:
Цитата:
type
a=array of string;
const

fwef1:array[0..1]of string=('2','2');
fwef2:array[0..2]of string=( '2','2','2');
fwe: array[0..1]of a=(@fwef1,@fwef2);
Но так делает fwef1 и fwef2 размером по 65500, 4237422 соответственно...
Да, ясен.
.............
Добавлено:
Я хотел бы не в теле программы, как сказано выше - константа....

Это конечно жёстко....
Но получилось вот что:
Код:
type
 a=array of string;
 t=record
  aa:a;
  length:Integer;
 end;
const
fwef1:array[0..1]of string=('1','2');
fwef2:array[0..2]of string=( '3','4','5');

ss1:t=(aa:@fwef1;length:2);
ss2:t=(aa:@fwef2;length:3);

fwe: array[0..1]of ^t=(@ss1,@ss2);

var
i:integer;j:integer;
begin
   for i:=0 to length(fwe)-1 do
   begin

    for j:=0 to fwe[i]^.Length-1 do
       write(fwe[i]^.aa[j]);
       writeln;
     end;

   readln;
..............
..............
..............
end.
Если можно проще.... это хорошо
Проще думаю будет если убрать длину, но тогда, что я напутал с указателями, что у них неверную длину возвращает,
если сделать как в #3?
begin
length(fwe[i])//== неверная длинна
end

From Stilet: код оформляй по кнопке # если это не PHP
Don't worry be happy

Последний раз редактировалось mihali4; 06.01.2010 в 20:19.
Izhic вне форума Ответить с цитированием
Старый 11.11.2009, 16:34   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как сказано выше - константа....
Что-то такое есть но насколько я знаю такой способ очень непопулярен...
Цитата:
Это конечно жёстко....
Думаю ты и сам не рад этакому...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++/С# многомерный массив DeFace Общие вопросы C/C++ 4 03.05.2009 16:07
Разъесните пожалуйста,что такое константа? Paul_AG Общие вопросы C/C++ 2 14.04.2009 16:39
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06
что такое константа? if-soft Паскаль, Turbo Pascal, PascalABC.NET 11 14.10.2008 19:19
Многомерный массив Iogan Gamba Puti Общие вопросы C/C++ 2 08.05.2008 15:20