一个简单的Delphi问题,求助!
''4000001'',''4001001'')
上面是用SQL语言写的一个判断某个值是否位于一个集合中。如果用Delphi完成它,该如何写?如果可以用定义集合类型来完成,该如何写代码?。请高手指教,得到答案后将立即结贴散分,谢谢!
注:请不要用if语句或Case语句!
2楼: 关注此题目............. 如用友财务软件价格
3楼: delphi2006可以
4楼: if not(a in ["2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012"])
5楼: to liubin44966:
if not(a in ["2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012"])
这样可以吗?
6楼: 楼主真搞笑,既然是判断哪有不用if或者case的?简单用if和in配合多好干吗非要复杂化
记账软件版7楼: if not(a in ["2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012"]) then
8楼: if not(a in ["2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012"]) then
这样是不行的,Delphi能识别双引号吗?
汗~~~~~~~~~
9楼: 变通一下:
a:=a+''|'';
ipos:=pos(a,
''1001004|1001005|1001006|1005002|1005003|1010001|1030001|4000001|4001001|'');
if ((ipos mod 8)<>1) then
begin
......
end;
注意:delphi 中的集合是有限制的,Sets may have at most 256 elements。
10楼: 可以转换成数字:
if not(strtoint(a) in [2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012]) then
11楼: 我觉得绵绵细雨的回答很有新意,实践证明,这种方法也可行。
非常感谢,等一会就结贴散分。
12楼: 真的是个好办法呀,绵绵细雨。可惜我来晚了。 如erp软件下载
13楼: 接受答案了.