我现在定义了record
TDSLAMQueryInfoRecord =Record
OPTION:String;
RESULT:String;
LAM_IP_ADDR:String;
DSLAM_STATE:String;
DSLAM_NODE_NAME:String;
PORT_STATE:String;
PORT_IS_SYNC:String;
end
我知道各个字段的名字(字符串的).我想用一个循环给TDSLAMQueryInfoRecord 的各个字段赋值
TDSLAMQueryInfoRecord =Record
OPTION:String;
RESULT:String;
LAM_IP_ADDR:String;
DSLAM_STATE:String;
DSLAM_NODE_NAME:String;
PORT_STATE:String;
PORT_IS_SYNC:String;
end
我知道各个字段的名字(字符串的).我想用一个循环给TDSLAMQueryInfoRecord 的各个字段赋值
dqi: TDSLAMQueryInfoRecord ;dqi.OPTION := 'sadfdsafdsf';
不行吗?不太明白你的意思
现在是
aaa:String;
aaa:='OPTION ';
我想dqi.aaa:='sadfdsafdsf'; 但是不行的.
我想找一种方法.因为TDSLAMQueryInfoRecord 里面的字段很多.我不想一个一个去写.想用个循环进行赋值.就象TOBject里边的FieldAddress(aaa)方法根据字段的字符串名就能得到字段的指针
///////////////////////////////////////////////////////////////那里说的这个方法不行吗?
////////////////
Record好像不行的,OPTION在这里就是一个变量,而'OPTION'是一个字符串变量的值,虽然从字面上看差别很小,但是编译器处理他们的时候其实差别是很大的,而且,定义Record的时候最好不要定义string类型的数据,因为他的长度是不固定的,使用起来会有不可预料的问题出现,你可以用array[0..length] of char来代替。