![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите пожалуйста найти правильное решение [D5, WinXP]
Smok_er © (2002-05-24 11:56:00)Уважаемые мастера! Подскажите пожалуйста, каким способом можно организовать таблицу вида Name Value1 Value2 Value3 etc. в памяти и по возможности с быстрым доступом к этим полям, например по имени.
Пробовал создавать такое количество стринг листов, сколько этих самых полей, но не сильно удобно, начинается путаница и т.д.
KilkennyCat (2002-05-26 09:19:00) [1]Да, можно. SetLength устанавливает необходимое число записей, то есть это - работа с динамическим массивом, размеры которого могут быть ограничены только типом переменной размера и ресурсами.
Smok_er (2002-05-26 00:10:00) [2]Вся проблема в том, что количество возможных записей неизвестно :(. Можно использовать этот метод при неизвестном количестве записей?
KilkennyCat (2002-05-25 23:38:00) [3]я бы второй пример написал бы по-понятнее:
Type TArr = record
Name: string;
Value1: Integer;
Value2: string;
etc
end;
var
Arr : array of TArr
Доступ:
SetLength(Arr, 2);
Arr[2].Value1 := ...
Smok_er (2002-05-25 22:46:00) [4]А можно поподробнее про эти 2 варианта?
Дело в том, что я в классах полный профан (к сожалению) и никак не могу получить значение в первом случае.
И интересно, как обращаться к элементам списка во втором случае?
Помогите пожалуйста...
Shaman_Naydak (2002-05-24 13:23:00) [5]var
Arr: array of record
Name: string;
Value1: Integer;
Value2: string;
etc
end;
+ через TList, реализовать одно/двунаправленный списое
Вариантов можно организовать до чертиков...
onix (2002-05-24 12:18:00) [6]Попробуй в одном TStringlist"е сохранять объекты в которых будут твои поля. К примеру:
type
TMyObject = class
field1 : string;
field2 : integer;
.
.
end;
Затем где-то в программе:
procedure Sample;
var MyObj : TMyObject;
begin
MyObj := TMyObject.Create;
MyStrinfList.Items.AddObject("String1", MyObj);
.....
.....
end;