码迷,mamicode.com
首页 > Web开发 > 详细

update20181214 - uGetHttpData.pas

时间:2018-12-14 17:39:02      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:float   money   regex   style   and   tle   update   format   cto   

function DecodePJItem(sText: string): TList<TDataItem>;
var
  reg: TRegEx;
  mc: TMatchCollection;
  item: TMatch;
  dataItem: TDataItem;
begin
  Result := TList<TDataItem>.Create;
  sText := reg.Replace(sText, \n, ‘‘);
  sText := reg.Replace(sText, <tr style="">.*?</tr>, ‘‘);    //
  sText := reg.Replace(sText, <td width=".*?">, ‘‘);
  sText := reg.Replace(sText, <span class.*?">, ‘‘);
  sText := reg.Replace(sText, <td class=.*?>, ‘‘);
  sText := reg.Replace(sText, <p class.*?>, ‘‘);
  sText := reg.Replace(sText, <input .*?>, ‘‘);
  sText := reg.Replace(sText, <a.*?>, ‘‘);
  sText := reg.Replace(sText, </a>, ‘‘);
  sText := reg.Replace(sText, </span>, ‘‘);
  sText := reg.Replace(sText, </tr>, |);
  sText := reg.Replace(sText, <tr>, ‘‘);
  sText := reg.Replace(sText, </p>, ‘‘);
  sText := reg.Replace(sText, </td>, ,);
  sText := reg.Replace(sText, <span.*?>, ‘‘);
  reg := TRegEx.Create((.*?),(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),\|);
  mc := reg.Matches(sText);

  for item in mc do
  begin
    if item.Groups.Count = 9 then
    begin
      try
        if item.Groups[8].Value <> 我要买 then Continue;

        dataItem := TDataItem.Create;
        dataItem.PublishTime := item.Groups[1].Value;
        dataItem.Company := item.Groups[2].Value;
        dataItem.Money := StrToFloatDef(item.Groups[3].Value, 0);
        dataItem.OutTime := item.Groups[4].Value;
        dataItem.Deduction := StrToIntDef(item.Groups[5].Value, 0);
        dataItem.Defect := item.Groups[6].Value;
        dataItem.TimeLength := item.Groups[7].Value;
        dataItem.Text := item.Groups[8].Value;
        dataItem.LeftDay := GetLeftValue(dataItem.OutTime);

        if dataItem.LeftDay <= 0 then
        begin
          SendLog(TDataCollector.MainHandle,
            Format(%s, %s, 数据异常,跳过!!!,[dataItem.PublishTime, dataItem.Company]));
          dataItem.Free;
          Continue;
        end;
        dataItem.YearRate := dataItem.Deduction / 1000 * 360 / DataItem.LeftDay;
        dataItem.New := True;
      except
        Continue;
      end;

      Result.Add(dataItem);
    end;
  end;
end;

 

update20181214 - uGetHttpData.pas

标签:float   money   regex   style   and   tle   update   format   cto   

原文地址:https://www.cnblogs.com/onlyou13/p/10119590.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!