简单问题(20分)

  • 主题发起人 主题发起人 huddle
  • 开始时间 开始时间
H

huddle

Unregistered / Unconfirmed
GUEST, unregistred user!
if va in ('a','b','c') then ......
上面这句是pl/sql语句,怎样在Delphi里用object pascal写出同样的出成果
谢谢
 
if va in ['a','b','c'] then
 
if va in ['a','b','c'] then ......
 
if tlist.Fields[0].AsString in ['TRYQCKZ_','TRYQCKZX'] then
begin
...
end;
照楼上说的做了,可是编译不通过
Build
[Error] bak.pas(56): Ordinal type required
[Error] bak.pas(56): Incompatible types: 'Integer' and 'String'
[Fatal Error] Pbak.dpr(5): Could not compile used unit 'bak.pas'
 
var
List:TStringList;
I:Integer;
va;string
//目的字符串
result:boolean;
begin
result:=False;
List:=TStringList.Create;
try
List.Add('字符串1');
.
.
.
List.Add('字符串n');
for I:=0 to List.Count-1 do
begin
if Comparestr(va,List)=0 then
begin
result:=True;
exit;
end;
end;
if result then
begin
...
end else
do elsesomthing;
finally
List.free;
end;
end;
好累啊,真不习惯这样写程序,嗬嗬!

老弟,见谅,思考时间有限,如果不当之处,还请批评指正!

仅供参考!
 
楼上的朋友:
需要这么复杂吗
这么写还不如用or来得简单点
 
:)

为什么你不考虑一般情况呢?

其实并不复杂,简单的说,就是解释了in操作的含义!!!
 
可是再简单,有这么一堆代码在那里,看起来也不太方便
:)
 
应该有一行代码就能解决问题的办法
 
if pos(tlist.Fields[0].AsString , 'TRYQCKZ_ ,TRYQCKZX')>0 then
 
我是菜鸟
IN 只能处理整形的吧
if abc in [1,2,3] then .....
 
迷糊能解释一下
if pos(tlist.Fields[0].AsString , 'TRYQCKZ_ ,TRYQCKZX')>0 then
我想学习一下
 
苦海无边说得不错,in 只能处理整型
就是要能处理string的方法
 
帮你顶 我也想知道!
 
if va in ['a','b','c'] then
这个语法没错,前提是必须是char,而不可是string.
因为[]表示集合,其元素必须是有序的。
 
太阳火说得对,要va是char类型才行
 
把所有的都放入stringlist中,然后用indexof就可以。
例如
var strlist: TStringlist;
begin
strlist := TStringlist.create;
strlist.add('TRYQCKZ_');
strlist.add('TRYQCKZX');
if strlist.indexof(tlist.Fields[0].AsString) >= 0 then // >=0表示存在
....
strlist.free
end;
 
设置va为枚举类型的字符变量
Type va=['a','b','c']
而后 if va:='a' to 'c' then ......
试试应该可以(如果意思没有理解错的话)
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部