wonderwiller 2015-07-16 09:30 采纳率: 33.3%
浏览 1671

请问delphi大牛 为什么这段代码的外层循环没有执行?

procedure TForm1.Button1Click(Sender: TObject);
var
sUrl:string;
ihMyIdHttp:TIdHTTP;
ihMyIdHttp1:TIdHTTP;
iFrom:Integer;
iTo:Integer;
i:Integer;
sInfo:string;
sName:string;
list:TStringList;
o:Integer;
p:Integer;
list1:TStringList;
list2:TStringList;

s公司名称:string;
s会员级别:string;
s联系人:string;
sQQ:string;
s电话:string;
s移动电话:string;
s传真:string;
s网址:string;

sSubInfo:string;
begin

ListView1.Items.Clear;

if (Edit1.Text='') or (Edit2.Text='') then
begin
ShowMessage('请输入搜索范围');

    Exit;

end;

iFrom:=StrToInt(Edit1.Text);
iTo:=StrToInt(Edit2.Text);

ListView1.ViewStyle:=vsReport;

ihMyIdHttp:=TIdHTTP.Create(nil);

for i := iFrom to iTo do
begin

sUrl:='http://www.sg560.com/company/cate_area-0/date_key_/p'+i.ToString+'.html';

ShowMessage(sUrl);
sInfo:=ihMyIdHttp.Get(sUrl);

sInfo:=CopyStr(sInfo,'<div class="result-list-content">','<div class="clearfix">');

SplitString(sInfo,'<a class="g-imgTxt-tl" href="',list);

ihMyIdHttp1:=TIdHTTP.Create(nil);
for o := 0 to list.Count-1 do
    begin
      p:=o;
      p:=p*2+1;
      if p=21 then
      Exit;


      SplitString(list[p],'" title="',list1);
      s网址:='http://www.sg560.com'+list1[0];

      SplitString(list1[1],'"',list2);
      s公司名称:=list2[0];


      sSubInfo:=ihMyIdHttp1.Get(s网址);

      sSubInfo:=CopyStr(sSubInfo,'<div class="header">','<div class="mright">');

      s会员级别:=CopyStr(sSubInfo,'<div class="name2">','</div>');
      s会员级别:=s会员级别+':第'+CopyStr(sSubInfo,'<span class="num">','</span>')+'年';

      s联系人:=CopyStr(sSubInfo,'<p class="mlp2">','<a');
      s联系人:=CopyStr(s联系人,'<span>','</span>');

      sQQ:=CopyStr(sSubInfo,'&uin=','&site');

      s电话:=CopyStr(sSubInfo,'电 话:','<br />');


      s移动电话:=CopyStr(sSubInfo,'移动电话:','<br />');


      s传真:=CopyStr(sSubInfo,'传 真:','</p>');


      if s会员级别<>'免费会员' then
      begin

       with ListView1.Items.Add do
        begin
          //Caption:=IntToStr('1');
          SubItems.Add('22');
          SubItems.Add(s公司名称);
          SubItems.Add(s会员级别);
          SubItems.Add(s联系人);
          SubItems.Add(sQQ);
          SubItems.Add(s电话);
          SubItems.Add(s移动电话);
          SubItems.Add(s传真);
          SubItems.Add(s网址);


          try
            listview1.Items[listview1.Items.Count-1].MakeVisible(true);
          except
            on E:Exception do
            ShowMessage('异常:'+E.Message);
          end;

      end;



    end;

end;

ihMyIdHttp.Free;
ihMyIdHttp1.Free;

end;

end;

  • 写回答

6条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2015-07-16 09:33
    关注

    for i := iFrom to iTo do如果是这句,那就检查两个变量的值
    如果是for o := 0 to list.Count-1 do,那就差list中有没有数据,也许SplitString分割失败了

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)