delphi中集合的写法问题
delphi中可以用IN来判断一个数是否在一个集合中,
比如
for j:=0 to chklistbox.Items.Count-1 do
begin
if j in [1,3,7] then
chklistbox.Checked[j]:=true;
end;
可以为chklistbox打勾,但是如果[1,3,7]不是这样直接指定的,而是储存在数据库中又该如何操作呢?我打算是把它储存在一个text字段中。也用1,3,7的形式。
但是读出来后怎么写呢?
是
if j in [adotable1.fieldbyname('aaa').asstring]这样可以吗?
问题点数:50、回复次数:3Top
1 楼cuteant(我这张旧床票还能否登上你的破床|涛声是否依旧)回复于 2006-03-12 18:04:30 得分 0
字符串中可以用Pos函数
或者你从字符串转存到数组中去,然后用in来判断Top
2 楼bluekitty(软件黑领)回复于 2006-03-12 18:13:44 得分 40
不行,既然在数据库中是逗号分割的,那可以这样:
for j:=0 to chklistbox.Items.Count-1 do
begin
if pos(','+inttostr(j)+',',adotable1.fieldbyname('aaa').asstring)<>0
or (inttostr(j)+','=copy(adotable1.fieldbyname('aaa').asstring,1,length(inttostr(j))+1) then
chklistbox.Checked[j]:=true;
end;
Top
3 楼meiqingsong(阿飛)回复于 2006-03-12 19:34:30 得分 10
//text := '1,2,3'
var
sList : TStringList;
i , index: integer;
begin
sList := TStringList.Create();
sList.Delimiter = ',';
sList.DelimiterText := text;
if(sList.Find('1',index)) then //-------------查询
ShowMessage(IntToStr(index));
end;Top




