| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 774 人关注过本帖
标题:关于‘,’的问题
只看楼主 加入收藏
wss841103
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2011-7-6
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:8 
关于‘,’的问题
procedure TForm1.Button1Click(Sender: TObject);
type
  lushu=set of 1..12;
var
ls:lushu ;
i,j:Integer ;
str:string ;
begin
   ls:=[1..12];
   str :='1345';
   j:=0;
   for i:=0 to Length (str)-1 do
   begin
      if strtoint(str[i]) in ls then
      j:=j+1;
   end;  
end;
运行提示:---------------------------
---------------------------
Project1
---------------------------
'
---------------------------
确定   
---------------------------
麻烦那位大侠给看一下

[ 本帖最后由 wss841103 于 2011-7-10 19:18 编辑 ]
搜索更多相关主题的帖子: procedure 
2011-07-10 19:17
yuutian
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:137
专家分:686
注 册:2010-10-27
收藏
得分:0 
你程序中的j,没有什么用啊
    还有就是str[i]并没有表示单个的值1,3 ,4 ,5 ,而是整个1345,所以肯定永远也不会在ls当中
     改成这样及对了,编译通过:
procedure TForm1.Button1Click(Sender: TObject);
type
  lushu=set of 1..12;
var
ls:lushu ;
i:Integer ;
str:string ;
begin
   ls:=[1..12];
   str:='1345';
   try
   for i:=0 to Length(str) do
   begin
      if Length(str) in ls then
      memo1.Lines.Add((str[i]));
   end;
   except
      showmessage('not in ls');
end;
end;

end.
2011-07-11 13:35
wss841103
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2011-7-6
收藏
得分:0 
回复 2楼 yuutian
异常语句用的很好。可能是我没表达清楚吧!我是想:判断比如字符串‘1345’中的1,2,3,4,5有没有在
集合【1,2,3,4,5,6,7,8,9,10,11,12】中出现,如果出现,执行一定的代码。
 通过你的指点,我的代码的确不能实现这样的功能。可单步运行时str[i]明明就只是一个字符啊,为什么不能用
str[i] in ls
这句代码呢?
还用一点不太明白,向你请教一下,你写的这句
 if Length(str) in ls then
好像没什么意义,有没有都是一样的输出结果的,麻烦了,再给讲讲。

[ 本帖最后由 wss841103 于 2011-7-11 21:42 编辑 ]
2011-07-11 21:36
wss841103
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2011-7-6
收藏
得分:0 
回复 2楼 yuutian
异常语句用的很好。可能是我没表达清楚吧!我是想:判断比如字符串‘1345’中的1,2,3,4,5有没有在
字符串str中出现,如果出现,执行一定的代码。
 通过你的指点,我的代码的确不能实现这样的功能。可单步运行时str[i]明明就只是一个字符啊,为什么不能用
str[i] in ls
这句代码呢?
还用一点不太明白,向你请教一下,你写的这句
 if Length(str) in ls then
好像没什么意义,有没有都是一样的输出结果的,麻烦了,再给讲讲。异常语句用的很好。可能是我没表达清楚吧!我是想:判断比如字符串‘1345’中的1,2,3,4,5有没有在
字符串str中出现,如果出现,执行一定的代码。
 通过你的指点,我的代码的确不能实现这样的功能。可单步运行时str[i]明明就只是一个字符啊,为什么不能用
str[i] in ls
这句代码呢?
还用一点不太明白,向你请教一下,你写的这句
 if Length(str) in ls then
好像没什么意义,有没有都是一样的输出结果的,麻烦了,再给讲讲。
2011-07-11 21:36
yuutian
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:137
专家分:686
注 册:2010-10-27
收藏
得分:0 
我定义成一个数组可以进行,看能给你点思路不,可以参考一下:
procedure TForm1.Button1Click(Sender: TObject);
type
  lushu=set of 1..12;
var
ls:lushu;
i,j:Integer;
str:array of string;
begin
   setlength(str,5);
   str[0]:='1';
   str[1]:='3';
   str[2]:='4';
   str[3]:='5';
   str[4]:='20';
   ls:=[1..12];
   for i:=0 to high(str) do
   begin
     if  strtoint(str[i]) in ls then
         memo1.Lines.Add(str[i])
     else
         memo2.Lines.Add(str[i]);
end;
end;


end.
2011-07-12 08:32
yuutian
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:137
专家分:686
注 册:2010-10-27
收藏
得分:20 
我认为是这里的错误,我调试了一下,i的值不能从0开始,并且,取得str的长度也不能减1:
    这个程序通过:
procedure TForm1.Button1Click(Sender: TObject);
type
  lushu=set of 1..12;
var
ls:lushu;
i,j:Integer;
str: string;
begin
   ls:=[1..12];
   str:='1345';
   for i:=1 to length(str) do
   begin
     if  strtoint(str[i]) in ls then
         memo1.Lines.Add(str[i])
     else
         memo2.Lines.Add(str[i]);
end;
end;


end.
2011-07-12 08:38
wss841103
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2011-7-6
收藏
得分:0 
你真是太有才了,谢谢奥!我把两个结合起来用了:
procedure TForm1.Button1Click(Sender: TObject);
type
  lushu=set of 1..12;
var
ls:lushu ;
i,testcount:Integer ;
s:string ;
list:TStringList ;
begin
    ls:=[1..12];
    s :='1,3,4,5';
    List := TStringList.Create;
    testcount:=ExtractStrings([','],[],PChar(s),List);     
    for i:=1 to testcount do
   begin
      testmember[i]:=StrToInt(List.Strings[i-1]);
      if testmember[i] in ls then
      Memo1 .Lines .Add(IntToStr(testmember[i]))
      else
      checkbox1.checked:=True ;
   end;

end;
2011-07-13 20:45
haiou327
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:22
专家分:107
注 册:2009-4-26
收藏
得分:0 
程序代码:
type
  lushu = set of 1..12;
var
  ls: lushu;
  i: Integer;
  str: string;
begin
  ls := [1..12];
  str := '1345';
  for i := 1 to Length(str) do
  begin
    if strtoint(str[i]) in ls then
    ShowMessage(str[i]);
  end;
end;


[ 本帖最后由 haiou327 于 2012-5-26 15:58 编辑 ]
2012-05-26 15:45
快速回复:关于‘,’的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035603 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved