[能不能实现这样的功能]动态指定用哪个变量来进行计算

smalldeer 2004-09-14 03:00:23
用哪个变量没有定,需从配置文件从获取信息

ex:
3个变量
g_1,g_2,g_3:string

程序中读入配置文件的信息,内容是'g_2'
则赋值语句要这样
str := g_2
如果内容是'g_1'
则赋值语句要这样
str := g_1

现在处理的方法是
if 读入的内容='g_1' then
str := g_1;
if 读入的内容='g_2' then
str := g_2
if 读入的内容='g_3' then
str := g_3

这样当然不太好了,如果极端一点,有100个,那怎么办
请教有没有更直接的方法,请教了,谢谢。

...全文
81 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
smalldeer 2004-09-29
  • 打赏
  • 举报
回复
还有其他更好的方法吗,谢谢
luke5678 2004-09-14
  • 打赏
  • 举报
回复
给个思路:

可以用TStringList转化一下
var
s:TStringList;
begin
s := TStringList.Create;
s.Add('aa');
s.Add('bb');
s.Add('cc');
...
for i := 1 to 100 do
begin
if StrToInt(RightStr(读入的内容,1)) = i then
str := s.String[i - 1];
end;

end;
lobby 2004-09-14
  • 打赏
  • 举报
回复
用TStrings
Values[name]=value
smalldeer 2004-09-14
  • 打赏
  • 举报
回复
不是这样理解的
ex:
g_1,g_2,g_3:string

g_1:='aa'
g_2:='bb'
g_3:='cc'

if 读入的内容='g_1' then
str := g_1;(str就等于'aa')
if 读入的内容='g_2' then
str := g_2
if 读入的内容='g_3' then
str := g_3
luke5678 2004-09-14
  • 打赏
  • 举报
回复
for i := 1 to 100 do
begin
if StrToInt(RightStr(读入的内容,1)) = i then
str := 'g_' + IntToStr(i);
end;
ly_liuyang 2004-09-14
  • 打赏
  • 举报
回复
用Pascal Script组建了:IFPS3/RemObject Pascal Script

比较麻烦

http://lysoft.7u7.net

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧