请问各位高手可不可以让一串字符串成为代码执行???下面的代码怎么让它执行起来???

hawk_js 2003-10-14 10:23:35
var str:string;
...
procedure Tform1.Button1Click(Sender: TObject);
var r,x,y:string;
begin
...
str:='r:=x+y-x*2 . . .'; //str字符串内容是在程序执行的过程中,动态生成的
...
end;

procedure Tform1.Button2Click(Sender: TObject);
var i:integer
begin
...
i:=执行str中的'r:=x+y-x*2 . . .'语句的结果;
...
end;

请问各位高手怎么让字符串中的语句执行起来???
...全文
66 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoutian618 2003-10-27
  • 打赏
  • 举报
回复
以前做过表达式解析的类,但是我写的也只能处理单一个表达式。

在Dev组件中,
有一个组件是可能执行DELPHI中的大部分的语法和函数的,
并且那个组件的功能支持扩展的,
建议你去看看。
hawk_js 2003-10-27
  • 打赏
  • 举报
回复
TO Delphi_Li(Delphi Li) :能否指点一二啊;)?
Delphi_Li 2003-10-20
  • 打赏
  • 举报
回复
你做的是一个语法解释器,好好看看数据结构,如何使用堆栈的方法处理一员多次方程的!!!
OO_is_just_P 2003-10-20
  • 打赏
  • 举报
回复
同意 CDSoftwareWj,有几个组建都支持标准的Delphi语法。
CDSoftwareWj 2003-10-20
  • 打赏
  • 举报
回复
用过 DC 系列组件没有?? hehe^^

支持 pascal 语法....

你去 51Delphi 找找看
hawk_js 2003-10-20
  • 打赏
  • 举报
回复
看来没有办法了?
Allanlove 2003-10-16
  • 打赏
  • 举报
回复
运算符也可以提出来啊
判断是否有‘+’,‘—’,‘*’,‘/’‘(’,‘)’等
jianxin_js 2003-10-16
  • 打赏
  • 举报
回复
那运算符怎么处理
Allanlove 2003-10-15
  • 打赏
  • 举报
回复
我有个想法,你试试:
把字符串中的字符提出来,
如r[1]
转换成数字,然后计算
crossbow 2003-10-15
  • 打赏
  • 举报
回复
同意sundayzhao(皮皮虾)
hawk_js 2003-10-15
  • 打赏
  • 举报
回复
UP
2001Wind 2003-10-14
  • 打赏
  • 举报
回复
学习,up
飞翔的老虎 2003-10-14
  • 打赏
  • 举报
回复
呵呵,以前我写一个证券分析软件的时候,写过一个解析器,能够解析执行逻辑表达式,算术表达式,如果楼主想自己写,可以看看编译原理(计算机的核心课程)采用三元式比较方便,或者使用逆波兰表达式方式都可以的。
lonaerd 2003-10-14
  • 打赏
  • 举报
回复
帮你UP,值得研究
delphi_xizhousheng 2003-10-14
  • 打赏
  • 举报
回复
这个得绕过编译器了吧?不然编译器只能将你的代码编译成字符串,高手出来讲个思路!
Jobs_Weng 2003-10-14
  • 打赏
  • 举报
回复
建議你改用VFP之其宏替換吧,DELPHI中不提供此類功能。
tom20803862 2003-10-14
  • 打赏
  • 举报
回复
要做到自由度很高是不可能的,帮你up
jianxin_js 2003-10-14
  • 打赏
  • 举报
回复
友情UP
hawk_js 2003-10-14
  • 打赏
  • 举报
回复
自己先UP一下;)
quida 2003-10-14
  • 打赏
  • 举报
回复
用全局变量var str:string;r,x,y: int;和str:=StrToInt(x)+StrToInt(y)+StrToInt(x)*2;
加载更多回复(3)

5,939

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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