1. function DecodePJItem(sText: string): TList<TDataItem>;
  2. var
  3. reg: TRegEx;
  4. mc: TMatchCollection;
  5. item: TMatch;
  6. dataItem: TDataItem;
  7. begin
  8. Result := TList<TDataItem>.Create;
  9. sText := reg.Replace(sText, '\n', '');
  10. sText := reg.Replace(sText, '<tr style="">.*?</tr>', ''); //
  11. sText := reg.Replace(sText, '<td width=".*?">', '');
  12. sText := reg.Replace(sText, '<span class.*?">', '');
  13. sText := reg.Replace(sText, '<td class=.*?>', '');
  14. sText := reg.Replace(sText, '<p class.*?>', '');
  15. sText := reg.Replace(sText, '<input .*?>', '');
  16. sText := reg.Replace(sText, '<a.*?>', '');
  17. sText := reg.Replace(sText, '</a>', '');
  18. sText := reg.Replace(sText, '</span>', '');
  19. sText := reg.Replace(sText, '</tr>', '|');
  20. sText := reg.Replace(sText, '<tr>', '');
  21. sText := reg.Replace(sText, '</p>', '');
  22. sText := reg.Replace(sText, '</td>', ',');
  23. sText := reg.Replace(sText, '<span.*?>', '');
  24. reg := TRegEx.Create('(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),\|');
  25. mc := reg.Matches(sText);
  26.  
  27. for item in mc do
  28. begin
  29. if item.Groups.Count = then
  30. begin
  31. try
  32. if item.Groups[].Value <> '我要买' then Continue;
  33.  
  34. dataItem := TDataItem.Create;
  35. dataItem.PublishTime := item.Groups[].Value;
  36. dataItem.Company := item.Groups[].Value;
  37. dataItem.Money := StrToFloatDef(item.Groups[].Value, );
  38. dataItem.OutTime := item.Groups[].Value;
  39. dataItem.Deduction := StrToIntDef(item.Groups[].Value, );
  40. dataItem.Defect := item.Groups[].Value;
  41. dataItem.TimeLength := item.Groups[].Value;
  42. dataItem.Text := item.Groups[].Value;
  43. dataItem.LeftDay := GetLeftValue(dataItem.OutTime);
  44.  
  45. if dataItem.LeftDay <= then
  46. begin
  47. SendLog(TDataCollector.MainHandle,
  48. Format('%s, %s, 数据异常,跳过!!!',[dataItem.PublishTime, dataItem.Company]));
  49. dataItem.Free;
  50. Continue;
  51. end;
  52. dataItem.YearRate := dataItem.Deduction / * / DataItem.LeftDay;
  53. dataItem.New := True;
  54. except
  55. Continue;
  56. end;
  57.  
  58. Result.Add(dataItem);
  59. end;
  60. end;
  61. end;

update20181214 - uGetHttpData.pas的更多相关文章

  1. GetPJData - uGetHttpData.pas

    function GetPJData(APage: Integer): string; var IdHTTP: TIdHTTP; url: string; paramsList: TStringLis ...

  2. Delphi项目构成之单元文件PAS

    单元文件是Pascal源文件,扩展名为.pas. 有三种类型的单元文件: 窗体/数据模块和框架的单元文件(form/data module and frame units),一般由Delphi自动生成 ...

  3. Delphi 包的设计思想及它与PAS、BPL、DCU、DLL、OXC的关系。

    DCP ,BPL分别是什么文件,起什么作用?你在DELPHI中建立一个package然后保存一下,看看. bpl和Dll比较相似.只是BPL是BORLAND自己弄出来的东西!!!调用也和调用DLL相似 ...

  4. 5、利用控件TVCLZip和TIdFTP压缩文件并上传到FTP的线程单元pas 改进版

    用到临界区 保护写日志的函数: 递归函数 删除目录下的所有文件: 循环创建或判断FTP的目录: 可改进的地方:循环压缩深层次目录的所以文件: 实现断点续传,或断点下载: {************** ...

  5. F2063 Could not compile used unit 'tt.pas'

    install packge error F2063 Could not compile used unit 'tt.pas' 有可能是工程的pas文件相对路径不对.在工程管理看是否能打开文件,如果打 ...

  6. Android问题-XE5提示"[DCC Fatal Error] Project1.dpr(1): F1027 Unit not found: 'System.pas' or binary equivalents (.dcu/.o)"

    问题现象:Checking project dependencies...Compiling Project1.dproj (Debug, Android)dcc command line for & ...

  7. Messages.pas里的消息

    一.Windows 消息大全 这张表拷贝自万一兄的帖子:http://www.cnblogs.com/del/archive/2008/02/25/1079970.html 但是我希望自己能把这些消息 ...

  8. 问题-RZ安装后报错“RzBorder.pas”

    错误象现:[Error] RzBorder.pas(1429): Number of elements differs from declaration [Fatal Error] RzEdit.pa ...

  9. 问题-[致命错误] Project1.dpr(1): Unit not found: 'System.pas' or binary equivalents (DCU,DPU)

    问题现象:[致命错误] Project1.dpr(1): Unit not found: 'System.pas' or binary equivalents (DCU,DPU) 问题原因:由于删除D ...

随机推荐

  1. GBDT的数学原理

    一.GBDT的原理 GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树 ...

  2. python网络之web框架

    逐步引入: 1. 最简单的web server #!/usr/bin/env python # coding:utf-8 import socket sk = socket.socket() sk.b ...

  3. Java程序心得体会

    学习Java是一件快乐的事情,刚开始学习的时候还有点难,后来慢慢熟悉了Java的程序操作,在错误中获得技巧,一次又一次的失败,让我对Java产生了兴趣,现在对Java既陌生又熟悉,我相信我会喜欢上Ja ...

  4. C16记技术服务支持

    1.首页笔记:可以通过点击加号添加笔记的分类,还可以查看最近的10条笔记 2.图形:可以通过查看笔记的比例来分析自己最近的状况 3.快速添加笔记:点击添加笔记能够直接进行笔记 4.时间轴:能够通过文字 ...

  5. python笔记——遇到一些报错

    1.TypeError: data type not understood File "C:\Users\81476\PycharmProjects\untitled1\k-临近算法\kNN ...

  6. Python 语法1

    函数的定义: """ def 函数名(): 函数内容,函数内容, 函数内容,函数内容, """ ////////////////////// ...

  7. 将JPA出参Iterable转为List

    Iterable<Entity> geted = entityDao.findAll();  List<Entity> list = Lists.newArrays();  g ...

  8. Element-ui 更新tableData 中 row的某一个属性时,没有更新视图的问题

    在一个报警音管理的页面中,每次点击试听的时候,需要把‘试听’ 更新为 ‘停止’, 起初我们给row.play=0时,显示为 试听,row.play=1时显示为停止, 但是在代码中每次为row.play ...

  9. 如何生成SSH key及查看SSH key

    只适用于Mac和windows下的Git Bash操作界面. 一.检查本地是否有SSH Key存在 在终端输入 ls -al ~/.ssh 如果终端输出的是: No such file or dire ...

  10. element 多个文件上传多次http请求解决方法

    第一步 action="#" 第二步 :auto-upload = "false" 第三步 给元素绑定click事件触发提交方法,注意,把其他没有用的文件都给去 ...