delphi 如何循环获取网页源码中两个字符串之间的内容

mzwcs 2015-09-17 03:36:00
delphi 如何循环获取网页源码中两个字符串之间的内容,并写入数组
function GetStr(Str,StrBegin,StrEnd,strxunhuan:string;Isxunhuan :Boolean = false):string;
str 全部文本
StrBegin :开始文本
StrEnd :结束文本
返回 :开始文本和结束文本之间的文本内容
isxunhuan(数组) : false(默认)的话不循环获取,true的话循环获取 (可不输入)

自己写了个不能循环的,循环的怎么写呢?
begin
in_star:=AnsiPos(strbegin,Str)+length(strbegin);
in_end:=AnsiPos(strend,Str);
result:=copy(Str,in_star,in_end-in_star);
end

求大神帮忙写个函数,感激不尽
...全文
845 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
让缘随风 2017-05-19
  • 打赏
  • 举报
回复
我也有类似问题,请问解决了吗,麻烦把正确的函数及用法贴出来一下,谢谢!
bdmh 2015-09-18
  • 打赏
  • 举报
回复
你用正则好了,指定首尾字符串,直接就给你返回所有的结果了
wdonghai 2015-09-17
  • 打赏
  • 举报
回复
...... type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Memo1: TMemo; Memo2: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure StrSplite(AStr,ASBegin,ASEnd:string;AStrings:TStrings;AIsXunHun:Boolean=True); var iB,iE:Integer; s:string; begin iB:=Pos(ASBegin,AStr); if iB>0 then begin iE:=Pos(ASEnd,AStr); if iE>0 then begin iB:=iB+length(ASBegin); s:=Copy(AStr,iB,iE-iB); AStrings.Add(s); if AIsXunHun then begin AStr:=Copy(AStr,iE+length(ASEnd),length(AStr)); StrSplite(AStr,ASBegin,ASEnd,AStrings,AIsXunHun); end; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Memo2.Clear; StrSplite(Memo1.Text,edit1.Text,edit2.Text,Memo2.Lines,True); end;
pathletboy 2015-09-17
  • 打赏
  • 举报
回复
这类任务建议使用正则表达式来完成。
代码转载自:https://pan.quark.cn/s/a5a09bf4723a 在信息技术领域,网络串口实现透明传输功能是一项核心的技术,特别是在远程监控、工业自动化以及物联网设备交互方面有着广泛的应用。透明传输,即全称透明传输,指的是数据在发送方和接收方之间无需进行任何形式的修改或解析,仿佛数据是通过一个抽象的通道直接传输。本案例通过运用多线程技术和QThread库来达成串口与网络之间的数据双向透明传输。接下来,我们将深入探讨串口通信的概念。串口(Serial Port)是一种历史悠久的通信接口,用于计算机与其他设备之间的数据交换。常见的串口类型包括RS-232、RS-485等,它们借助串行数据传输,支持低速但稳定的通信。相比之下,网络通信则涉及到TCP/IP协议栈,该协议栈界定了从应用层到物理层的数据传输规范。在网络透明传输的实现,通常采用TCP协议,因为TCP提供了可靠的数据传输服务,包含数据包顺序的保证和错误检测机制。达成网络串口透明传输的关键要素在于数据同步和实时响应。多线程技术在此过程扮演了至关重要的角色。在本案例,可能存在两个线程:一个负责串口的读写操作,另一个负责网络I/O处理。这种方式可以确保串口接收到的数据能够迅速地通过网络发送出去,同时网络接收到的数据也能迅速地转发到串口,从而实现双向的同步通信。QThread是Qt库提供的一种轻量级的线程实现,它简化了多线程编程的过程。在本项目,QThreadTest可能包含以下几个部分:1. **串口类**:此类封装了串口的开启、关闭、读取和写入等操作。它可能使用`QSerialPort`类,这是Qt提供的用于串口通信的应用程序接口。2. **网络类**:该类负责建立网络连接以及处理数...
内容概要:本文聚焦于多区域综合能源系统热网的建模与系统运行优化问题,基于Matlab平台实现了完整热网数学模型的构建与仿真分析。研究充分考虑热力网络的物理特性、能量传输损耗、多能互补机制以及区域间的耦合约束,建立了涵盖能源生产、传输与消费全过程的协同优化模型。通过集成灰狼优化(GWO)、改进灰狼优化(IGWO)、金豺优化(GJO)等多种智能优化算法,对系统运行成本、能源利用效率及碳排放等多重目标进行联合优化求解,有效提升了综合能源系统的经济性、可靠性和可持续性水平。文提供的完整Matlab代码支持EI级别论文的复现,具有较强的科研参考价值和工程应用潜力。; 适合人群:面向具备能源系统、电力系统或热力工程等相关专业背景,熟悉Matlab编程环境,从事综合能源系统建模、热网优化调度、多能协同控制等方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于多区域综合能源系统热力网络的建模与潮流仿真分析;②支撑系统级运行优化研究,包括经济调度、低碳运行、多能协同与可靠性提升;③为智能优化算法在复杂能源系统的应用提供可复现的案例支持与代码基础,助力高水平学术论文撰写与算法验证。; 阅读建议:建议结合Matlab代码逐模块解析热网建模流程与优化求解逻辑,重点关注热网节点方程、耦合元件建模、目标函数构造及约束条件处理方法,推荐配合实际系统参数进行调试与拓展实验,以深入掌握综合能源系统协同优化的核心机制。

16,742

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧