delphi中如何在record中查找内容
我定义了一个record类型myrecord,里面有多个字段,都是字符类型str1,str2..... 这些字段的值在其他函数中赋值,在
另外函数中能得到字段变量strname,这个strname可能是str1,也可能是str2... 我想通过这个strname变量查找到myrecord
中相应字段的值,比如当strname为str1时,能找到myrecord.str1的具体值。敬请大侠们赐教!
[解决办法]
myrecord.str1就是成员str1的值了,还要找什么? 加上判断吗?
if strname='str1' then
showmessage(myrecord.str1)
else if strname='str2' then
showmessage(myrecord.str2)
...
[解决办法]
[解决办法]
用RTTI来实现,参考万一的博客
http://www.cnblogs.com/del/archive/2009/10/15/1583969.html
[解决办法]
第一种方法,把str1...strn 定义成 array [0..n] of String;如何?
第二种方法
Type
TMyRecord = record
ID : integer;
Str1 : String;
Str2 : String;
Str3 : String;
Str4 : String;
Str5 : String;
Str6 : String;
Str7 : String;
....
end;
第二种方法
针对以前的情况,str1..strn连续的排列.
可以这样
var
R : TMyRecord;
P : PString;
begin
R.Str3 := 'aa';
P := @R.Str1;
P := Ptr(integer(P) + (3-1) * 4);
ShowMessage(P^);
end;
注意是连续排列的情况,也就是说可以根据str后的数字来获取它的位置.