求button1的click事件的写法

jakewwwvw 2003-04-12 03:31:42
请各位高手帮帮我
求button1的click事件的写法
程序是这样的,有一个button1,memo1,memo2,memo3

memo1的内容如下
'nt color=#333333><font color=#000066>[这个贴子最后由killusa在 2003/04/11 04:32pm 第 27 次编辑]</font><br><br>%^[127.0.0.1](images)^%</td></tr></table><table width=100% cellpadding='

我的问题是,按下button1后把memo1里的%^到^%里的内容,既[127.0.0.1](images)中的[]里的
内容放到memo2里去,把()里的内容放到memo3里去

其实这个程序的目的就是分析网页的源代码
memo1的内容其实就是网页的源代码,由于篇符的关系只帖这一小段源代码
...全文
35 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
jakewwwvw 2003-04-20
  • 打赏
  • 举报
回复
感谢jiangyiqu(迪迪虫)和brokenbird(brokenbird
jiangyiqu 2003-04-13
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var i,ii:integer;s,ss:string;
begin
s:=memo1.Text;
//%^的乞食位置
i:=pos('%^',s);
//^%的乞食位置
ii:=pos('^%',s);
//指定复制位置,因为‘^%’是两个字符,所以向后+2,
s:=copy(s,i+2,ii-i-2);
//[的乞食位置
i:=pos('[',s);
//]的乞食位置
ii:=pos(']',s);
//指定复制位置,因为‘[’是两个字符,所以向后+1,
ss:=copy(s,i+1,ii-i-1);
//向MEMO2中添加一行,【】中的内容
//如果只有一行就memo2.text:=ss;
memo2.Lines.Add(ss);
//(的乞食位置
i:=pos('(',s);
//)的乞食位置
ii:=pos(')',s);
//指定复制位置,因为‘(’是两个字符,所以向后+1,
ss:=copy(s,i+1,ii-i-1);
//向MEMO3中添加一行,()中的内容
memo3.Lines.Add(ss);
//GAME IS OVER
end;
jakewwwvw 2003-04-13
  • 打赏
  • 举报
回复
uupppppppp
jakewwwvw 2003-04-13
  • 打赏
  • 举报
回复
up
jakewwwvw 2003-04-13
  • 打赏
  • 举报
回复
如果我要再加处理<>里的内容
%^[127.0.0.1](showmessage)<1111>^%
加入以下代码却不行,
s3:=s1;
i:=pos('<',s3);
j:=pos('>',s3);
edit2.text:=copy(s3,i+1,j-i-1);
要怎么加
-------------
var
s1,s2,s3:string;
i,j:integer;
begin

i:=pos('%^',memo5.Text);
j:=pos('^%',memo5.Text);
s1:=copy(memo5.Text,i+2,j-i-2);

i:=pos('[',s1);
j:=pos(']',s1);
memo3.Text:=copy(s1,i+1,j-i-1);

s2:=s1;
i:=pos('(',s2);
j:=pos(')',s2);
edit1.text:=copy(s2,i+1,j-i-1);

s3:=s1;
i:=pos('<',s3);
j:=pos('>',s3);
memo4.text:=copy(s3,i+1,j-i-1);
brokenbird 2003-04-12
  • 打赏
  • 举报
回复
加入s2:=s1;
i:=pos('(',s2);
j:=pos(')',s2);
edit2.text:=copy(s2,i+1,j-i-1);
就完事
jakewwwvw 2003-04-12
  • 打赏
  • 举报
回复
up
jakewwwvw 2003-04-12
  • 打赏
  • 举报
回复
上面的代码是肯定可以的,不过他只处理了%^到^%里的[]
只要帮忙加入%^到^%里的 () 处理就完整了
jakewwwvw 2003-04-12
  • 打赏
  • 举报
回复
%^[127.0.0.1](images)^%
这个字符串在那个网页中的源码肯定只有一处
jakewwwvw 2003-04-12
  • 打赏
  • 举报
回复
已经有朋友给出一半的代码,叫我自己修改添加,可是我是初学,不知道应该怎么加
那位好心的帅哥帮忙给改改,并为没句都加上注释好吗!
----------------------
procedure TForm1.Button1Click(Sender: TObject);
var
s1,s2:string;
i,j:integer;
begin
i:=pos('%^',edit1.Text);
j:=pos('^%',edit1.Text);
s1:=copy(edit1.Text,i+2,j-i-2);
i:=pos('[',s1);
j:=pos(']',s1);
edit2.Text:=copy(s1,i+1,j-i-1);
end;
() 的内容也一样,你自己加一下吧。
-------------------
zxtyhy 2003-04-12
  • 打赏
  • 举报
回复
用pos copy吧
应该比较简单
  • 打赏
  • 举报
回复
[127.0.0.1](images)
这个字符串中在那个网页中的源码是多处出现还是一处??
Frend 2003-04-12
  • 打赏
  • 举报
回复
up
ehom 2003-04-12
  • 打赏
  • 举报
回复
用正则表达式当然可以让程序变的比较简单,将代码加以封装成一个类,可以有利于程序的维护

简单的实现就是Pos,Copy等的利用,那你的问题在哪?不会写代码?
DJ_KK 2003-04-12
  • 打赏
  • 举报
回复
可能要做一个判断了,如果单纯的是把memo1的内容显示出来,是做不到的,要在原码打开前做判断

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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