例如
if(adoquery1.fieldbyname('first_col').asstring) in ('aaa','abc','ddd')
这样,看这个字符串是否是aaa,abc,ddd中的一个,我试过了集合,似乎不可以用string类型,还有别的解决方法吗?
if(adoquery1.fieldbyname('first_col').asstring) in ('aaa','abc','ddd')
这样,看这个字符串是否是aaa,abc,ddd中的一个,我试过了集合,似乎不可以用string类型,还有别的解决方法吗?
解决方案 »
- 求DELPHI中 float转DWord格式的方法
- 【板务醒目】辞去 Windows SDK/API 板斑竹职务 7/10【散分醒目】
- QQ视频
- 怪,怪,是中毒了吗,程序惟独在一台电脑上有错误提示,望高手指点.
- taideveloper(孔丙已) 或 happyzsl(学习) 请教一下!
- 有关ONKYEDOWN.....
- 各路好汉看看!
- 心烦,意乱,不爽……进来说说话,有可能你就有分了
- 谁有Wise Installer 8.12的注册码?谢谢了!
- BDE,Deplhi5,Table,主明结构;在明细DBGrid输入时有时(不多)向上跳,烦啊!
- 如何得到系统的实际内存(大于4GB)?
- 我写了个扩展ListBox的组建,但不知道怎么调用
ls: TStringList;
begin
ls := TStringList.Create;
try
ls.DelimitedText := 'aaa,abc,ddd';
ls.Sorted := True;
if ls.IndexOf(ADOQuery1.FieldByName('first_col').AsString) > -1 then
begin
//找到
end;
finally
ls.Free;
end;
end;
var
StrList: TStringList;
begin
try
StrList := TStringList.Create;
StrList.Delimiter := ';';
StrList.DelimitedText := 'aaa;bbb;ccc';
if StrList.IndexOf('aaa') > -1 then
ShowMessage('aaa');
finally
StrList.Free;
end;
end;
不过是否有其他更好的方法,其他大侠考虑下?
try应该在TStringList.Create语句下面
TStringList 只有在Sorted := True时,IndexOf才会使用折半查找的方式快速查找,否则只是简单地遍历
ls.Text := StringReplace('aaa,abc,ddd', ',', #13#10, [rfReplaceAll])
或者
ls.add('aaa');
ls.add('abc');
ls.add('ddd');