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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.012 c
15-1144095238
systemis
2006-04-04 00:13
2006.04.23
Новейший Delphi проэкт


15-1143114528
Der Nechk@ssoff
2006-03-23 14:48
2006.04.23
Политика Мелкософта


2-1144684983
que
2006-04-10 20:03
2006.04.23
GetMem & FillChar & Pointer ???


15-1142369251
Kerk
2006-03-14 23:47
2006.04.23
Поиск по статьям о программировании


2-1144545460
001
2006-04-09 05:17
2006.04.23
PDOXUSRS.NET





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский