Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.23;
Скачать: CL | DM;

Вниз

Как обратиться к элементам массива записей без использования имен   Найти похожие ветки 

 
shapm ©   (2006-04-10 11:17) [0]

Есть запись
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;


 
Palladin ©   (2006-04-10 11:23) [1]

никак


 
Плохиш ©   (2006-04-10 11:30) [2]


> как обратиться к элементам массива записей без использования
> имен полей

Орехи жарим? :-)

PS. Вообще-то слова "массива" и "записей" надо поменять местами.
PSS. Почитай про вариантные части записей, может новые мысли появятся.


 
Anatoly Podgoretsky ©   (2006-04-10 12:21) [3]

Все проходит, только справа должно выть совместимое выражение, типа TsNro


 
TUser ©   (2006-04-10 12:25) [4]

В данном случае

TsNro = packed record

var d: ^double;

for i:=... //  цикл по записям
for j:=... //  цикл по полям
 d := pointer (integer(@RECS[i]) + sizeof(string) + sizeof(double) * j);
 d^ := // требуемое значение


 
shapm ©   (2006-04-10 12:48) [5]

Всем СПАСИБО за советы, особенно за поинтеры, обязательно проверю и воспользуюсь.
Пардон м.б. за нечеткую постановку, однако, проходит вот такой вариант, который меня вполне устраивает на данном этапе.
определю запись вот так
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;



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

Текущий архив: 2006.04.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.05 c
10-1117473032
dread
2005-05-30 21:10
2006.04.23
Очистить буфер в Ворде.


15-1143492305
Climber
2006-03-28 00:45
2006.04.23
Написание собственной базы данных


2-1144416392
Inna_Z
2006-04-07 17:26
2006.04.23
Проблема с AutoSize


8-1132137370
artyonkil
2005-11-16 13:36
2006.04.23
Форматирование и нумерация строк


4-1138956993
hgd
2006-02-03 11:56
2006.04.23
Подскажите о методе нажатия кнопку в другом приложении