Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];

Вниз

рекурсивный массив   Найти похожие ветки 

 
cyber-pilot   (2008-05-13 15:23) [0]

Подскажите, как правильно объявить такую рекурсивную конструкцию:

TRec = record
 pole1: Integer;
 pole2: String;
 List: TRecList;
end;

TRecList := array of TRec;


 
Сергей М. ©   (2008-05-13 15:27) [1]

Ты такой конструкцией хочешь с деревьями работать ?


 
Palladin ©   (2008-05-13 15:33) [2]

интересно, что сия конструкция означает :)


 
Сергей М. ©   (2008-05-13 15:37) [3]


> Palladin ©   (13.05.08 15:33) [2]


Дровами тут изрядно попахивает)


 
cyber-pilot   (2008-05-13 15:44) [4]

Я упрощенно записал, то что мне нужно.

Поля записи это условия поиска, и одним из условий хотелось бы сделать такую же структуру. Чтобы можно было уточнить изначальные условия.


 
cyber-pilot   (2008-05-13 15:53) [5]

До меня дошло, можно сделать так:

TRec = class;

TRecList := array of TRec;

TRec = class
pole1: Integer;
pole2: String;
List: TRecList;
end;


 
Сергей М. ©   (2008-05-13 15:53) [6]

ПРидется задействовать указательные типы, со всеми вытекающими последствиями:

PRec = ^TRec;
TRecList = array of PRec;

TRec = packed record
pole1: Integer;
pole2: String;
List: TRecList;
end;


 
Palladin ©   (2008-05-13 15:54) [7]

ну ты мощную конструкцию задвинул... внушаить :)
решается примерна так

TRec = record
pole1: Integer;
pole2: String;
List: ^TRec;
end;


 
Сергей М. ©   (2008-05-13 15:54) [8]


> До меня дошло, можно сделать так:
>
> TRec = class;
>


Это из той же оперы, что и [6], с теми же вытекающими последствиями


 
Palladin ©   (2008-05-13 15:55) [9]

опля... так нельзя... так нужно...

PRec=^TRec;
TRec = record
pole1: Integer;
pole2: String;
List: PRec;
end;


 
Сергей М. ©   (2008-05-13 16:05) [10]


> Palladin ©   (13.05.08 15:55) [9]


Тогда простой индексный доступ (как в случае с дин.массивом) не получится, а автора именно он пАрит, насколько мне подсказывает мой телепатор)


 
Palladin ©   (2008-05-13 16:18) [11]

:) ну отчего"ж, получится... ректально, конечно

Type
 PRec=^TRec;
 TRec=Record
  p1,p2:Integer;
  sub:PRec;
 End;

Function RecSubRec(R:PRec;nIndex:Integer):PRec;
Begin
 Inc(R,nIndex);
 Result:=R;
End;

Procedure RecInitList(Var R:TRec;nCount:Integer);
Begin
 GetMem(R.Sub,nCount*SizeOf(TRec));
End;

Procedure RecDoneList(Var R:TRec);
Begin
 FreeMem(R.Sub);
End;

Var
 r:TRec;
Begin
 RecInitList(r,10);
 Try
  RecSubRec(r.sub,10).p1:=10;
 Finally
  RecDoneList(r);
 End;
End;

:) но сам факт!..


 
Palladin ©   (2008-05-13 16:19) [12]

упс... за границы вышел... :)


 
Сергей М. ©   (2008-05-13 16:57) [13]


> ректально, конечно


Вот именно что ректально)


 
sniknik ©   (2008-05-13 22:03) [14]

а так не пойдет?
 TRec = class
   pole1: Integer;
   pole2: String;
   List: array of TRec;
 end;


 
sniknik ©   (2008-05-13 22:08) [15]

хм... хотя, уже есть, [5] примерно тоже самое.


 
Leonid Troyanovsky ©   (2008-05-13 22:10) [16]


> sniknik ©   (13.05.08 22:03) [14]

> а так не пойдет?

В любом случае, bad design.

--
Regards, LVT.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.052 c
15-1209321298
worldmen
2008-04-27 22:34
2008.06.08
Компиляция файла помощи через HCW.EXE


2-1210768544
Patrick
2008-05-14 16:35
2008.06.08
Проверка директория


2-1211190269
Mozgan
2008-05-19 13:44
2008.06.08
application.ProcessMessages


15-1208864165
vajo
2008-04-22 15:36
2008.06.08
Какие существуют офисные программы для Symbian 9.2?


6-1188851972
Aibolit
2007-09-04 00:39
2008.06.08
в терминальном сервере





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский