首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi中怎么在record中查找内容

2012-03-20 
delphi中如何在record中查找内容我定义了一个record类型myrecord,里面有多个字段,都是字符类型str1,str2..

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)
...


[解决办法]

探讨
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后的数字来获取它的位置.

热点排行