Главная страница
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.061 c
3-1141039805
ViktorZ
2006-02-27 14:30
2006.04.23
Накопление по разным базам.


4-1139132728
Stealth
2006-02-05 12:45
2006.04.23
Запуск другого приложения из TMemoryStream...


4-1138860238
Сергей Ю.
2006-02-02 09:03
2006.04.23
Отлов подключения флешки и залива туда инфы


2-1144140081
azl
2006-04-04 12:41
2006.04.23
Вкладка ActiveX в Delphi 2006


2-1144323969
Скиф
2006-04-06 15:46
2006.04.23
Как осуществить перезагрузку Windows