字符串变换为可用函数(100)

  • 主题发起人 主题发起人 steven7581
  • 开始时间 开始时间
S

steven7581

Unregistered / Unconfirmed
GUEST, unregistred user!
各们高手:我在写一段通用代码的时候,有一个问题一直没能解决。问题描述如下:从数据库中取到一个值: formatdatetime('yyyy-mm-dd hh:mm:ss',value)在程序中,我用实际的一个值 比如说 2009-5-2 3:45:34 去替换 value我需要将 formatdatetime('yyyy-mm-dd hh:mm:ss',strtodatetime('2009-5-2 3:45:34 '))变成一个可用的语句,并得到返回值。我应该如何去做? 现在也没有办法用全文检索,就有劳各位高手为我指一个明路。在些感谢
 
不明白你要说什么。
 
说白了,就是我从数据库中得到一个字符串,这个字符串是一个函数,我需要这个函数的反回值
 
想不到楼主和一楼的ID好只差了一位。我知道,帮你顶顶。
 
试试下面的这个函数function StringReplace(const S, OldPattern, NewPattern: string
Flags: TReplaceFlags): string;其中 S为源字符串,OldPattern为需要被替换的字符串,NewPattern为替换后的字符串,Flags为替换的参数,RfReplacdAll是替换所有的,RfIgnoreCase是忽略大小写.注意:替换后的字符串是函数据返回值,原始字符串是不会被改变的.
 
简单点就是s:string; s:=‘showmes’;然后就象在程序中调用s实际上就是执行showmes 对吗?我也在研究,顶哦!
 
帮顶一个,接个分
 
通过Delphi中调用VB脚本(或JavaScripe)可以实现类似的功能,可惜在VB脚本里面,许多delphi函数无法调用。有兴趣的话,请参考http://www.delphibbs.com/keylife/iblog_show.asp?xid=31259
 
如果数量不多用CASEcase ..'*':A*B'+':A+B'-':A-B'/':A/Bend (编译器不会把字符串编译成函数的)to:草原骏马你的观察不仔细,楼主一楼二楼的ID是连续的呢!
 
to terry_zhou82你说的是一个字符串替换函数,并不是我想要的东西。to 大器晚成你只说的只是一个操作的问题,我想实现的是函数的调用的我也知道编译器不会把字符串编译成函数的,但是我知道我要用的函数是什么类型的,如何进行调用to zkktom你说的对,想问问各位高手如何搞定这个问题
 
找一个脚本引擎使用就可以了。到盒子去下,很多http://www.2ccc.com/article.asp?articleid=3193
 
通过VB脚本即可完成,你写的自定义代码用VB函数即可。在delphi菜单Component/Import activexControl中,导出TScriptControl,生成一个MSScript单元,不会的话,可以到http://www.delphibbs.com/keylife/iblog_show.asp?xid=31259 的附件中提取。然后执行下面函数:use ComObj;procedure TForm1.Button2Click(Sender: TObject);var t:IScriptControl;begin t := CreateOleObject('ScriptControl') as IScriptControl
t.Language := 'VBScript'
Caption:= t.Eval('FormatDateTime(now,vbGeneralDate)');Caption:= t.Eval('FormatDateTime("2009-01-01",vbGeneralDate)')
t:=nil;end;VB提供的函数,请查看 http://www10.zzu.edu.cn/ie_wangjunfeng/daquan/function/index.aspx
 
如果你的函数不多的话,又是可以使用VB的函数代替的情况下。使用znxia 的办法是可行的。前一段时间也有一个和你类似的帖子,用的就是znxia 提供的办法解决的。另外函数不复杂,使用数据库的解析也是可以的。
 
在数据库 放一句 formatdatetime('yyyy-mm-dd hh:mm:ss',value)目的何在?数据库是用来给你放编程语句的?你在数据库 放 2009-5-2 3:45:34 然后读取后。直接执行 formatdatetime('yyyy-mm-dd hh:mm:ss',2009-5-2 3:45:34) 那还比较正常。
 
LS说得好,建议LZ要转变思路,不要舍易求难,那样即显不出水平,又浪费时间!
 
后退
顶部