Форум: "Основная";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];
Внизработа с записью Найти похожие ветки
← →
SmashFX (2002-11-28 13:33) [0]Доброго всем! подскажите! существует ли способ братиться к полю записи по его номеру?
то есть
type
TRec = record
field1:integer;
field2:string;
field3:boolean;
end;
....
Rec:TRec;
....
Rec.номер поля:=значение
спасиб заранее!
← →
Song (2002-11-28 13:35) [1]А если ты строки местами переставишь, номера по-твоему поменяются? :-)
← →
SmashFX (2002-11-28 13:46) [2]очевидно не совсем понятно задал вопрос....
я могу обратится к полем через Rec.field1:=1;Rec.field2:="1" и.д.
альтернативный способ существует?
← →
Игорь Шевченко (2002-11-28 13:54) [3]Нет
← →
oomneeq (2002-11-28 14:25) [4]> могу обратится к полем через Rec.field1:=1;Rec.field2:="1" и.д.
>альтернативный способ существует?
Cмотря что иметь ввиду под альтернативностью ...
если вспомнить про вариантные записи то можно так
type
TRec = record
case integer of //
0: (field1:integer;
field2:string[20];
field3:boolean);
1: (alternative1:string[26]);
end;
ограничение - поля немогут быть просто стринг
надо шортстринг,
примеры есть и с VCL
PrnRec = record
case Integer of
1: (
Cur: TPoint;
Finish: TPoint; { End of the printable area }
Height: Integer); { Height of the current line }
2: (
Tmp: array[1..32] of Char);
end;
в зависимости от потребности обращаться к одим и тем же
данным можно через разные идентификаторы
фактически это и есть альтернативный доступ,
просто все альтернативы нужно знать и описать заранее.
то ли это что было нужно?
← →
SmashFX (2002-11-28 14:54) [5]как вариант! спасибо!
← →
[NIKEL] (2002-11-28 15:44) [6]еще по смещению можно (offsetof(SomeStruct,SomeField))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c