Форум: "Основная";
Текущий архив: 2003.06.16;
Скачать: [xml.tar.bz2];
ВнизКак определить имя поля в рекорде? Найти похожие ветки
← →
McSimm2 (2003-06-04 10:20) [0]Есть массив рекордов.
TRec = record
f1,f2,f3,f4,f5: string;
end;
MasRec = array of Trec;
FRec: MasRec;
и есть переменная "А" которая может принимать значение - название поля из рекорда, т.е. : f1,f2,f3,f4,f5.
Как сделать, что получив значение переменной "А" равной, например f3 мне обратиться к FRec[i].f3
← →
han_malign (2003-06-04 10:22) [1]if then
else if then
else if then
..............
больше никак
← →
Skier (2003-06-04 10:28) [2]Можно попробовать так : каждому имени поставить в соответствие
смещение (поля в записи) и потом через кастинг на (^String) брать значения, благо все поля одного типа...
← →
McSimm2 (2003-06-04 10:28) [3]>> han_malign © (04.06.03 10:22)
Спасибо, как ни странно помог :)))
← →
han_malign (2003-06-04 10:35) [4]if((Length(A)>1)and(A[2]in["1".."5"])then begin
res:=String(Pointer(LongWord(@FRec[i])+(byte(A[2])-byte("1"))*4)^)
end;
где то так, для данного конкретного случая, но if then - все таки надежней
← →
Anatoly Podgoretsky (2003-06-04 10:49) [5]McSimm2 (04.06.03 10:28)
Странно было бы если цивильный, не хакерский путь не помог.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c