![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как обратиться к элементам массива записей без использования имен [D7, 2000]
shapm © (2006-04-10 11:17:00)Есть запись
TsNro = record
sStat: string;
s1kv, s2kv, s3kv, s4kv, sgod: double;
end;
Есть соответсвующий массив, для начала статический
sNro: Array[1..100] of TsNro;
обращение к элементам массива
for i:=1 to N
sNro[i].sStat:=.......;
sNro[i].s1kv:=.......;
sNro[i].s2kv:=.......;
sNro[i].s3kv:=.......;
sNro[i].s4kv:=.......;
sNro[i].sgod:=.......;
как обратиться к элементам массива записей без использования имен полей????
т.е.
вместо sNro[i].sStat писать что-то вроде
sNro[i, 1]:=.... (не проходит)
или
sNro[i][ 1]:=.... (не проходит тоже)
или
sNro[i],[ 1]:=.... (не проходит тоже)
или определить массив по-другому ......
Array[1..100,1..5] of TsNro;
shapm (2006-04-10 12:48:00) [1]Всем СПАСИБО за советы, особенно за поинтеры, обязательно проверю и воспользуюсь.
Пардон м.б. за нечеткую постановку, однако, проходит вот такой вариант, который меня вполне устраивает на данном этапе.
определю запись вот так
TsNro = record
sStat: string;
ssumm: array[1..5] of double;
end;
соответсвующий массив, для начала статический
sNro: Array[1..100] of TsNro;
и обращение к элементам массива
for i:=1 to N do begin
sNro[i].sStat:=.......;
for k:=1 to 5 do begin
sNro[i].ssumm[k]:=.......;
end;
end;
TUser (2006-04-10 12:25:00) [2]В данном случае
TsNro = packedrecord
var d: ^double;
for i:=... // цикл по записям
for j:=... // цикл по полям
d := pointer (integer(@RECS[i]) + sizeof(string) + sizeof(double) * j);
d^ := // требуемое значение
Anatoly Podgoretsky (2006-04-10 12:21:00) [3]Все проходит, только справа должно выть совместимое выражение, типа TsNro
Плохиш (2006-04-10 11:30:00) [4]
> как обратиться к элементам массива записей без использования
> имен полей
Орехи жарим? :-)
PS. Вообще-то слова "массива" и "записей" надо поменять местами.
PSS. Почитай про вариантные части записей, может новые мысли появятся.
Palladin (2006-04-10 11:23:00) [5]никак