将一个网页的源文件保存到Memo1后,怎么才能将源文件内所有的 
<user>和</user>中间的字符保存到Memo2中呢?

解决方案 »

  1.   

    以下代码在D7下测试通过:procedure TForm1.Button1Click(Sender: TObject);
    const
      PreChar='<user>';
      FixChar='</user>';
    var
      posA:integer;
      tmpS:String;
    begin
      tmpS:=memo1.Text;
      posA:=pos(PreChar,LowerCase(tmpS));
      delete(tmpS,1,posA+length(preChar));
      posA:=pos(FixChar,LowerCase(tmpS));
      if posA>0 then
        memo2.Text:=copy(tmpS,0,posA-1);
    end;
    -----------------------
    http://www.kmok.cn/
    -----------------------
      

  2.   

    //以下代码在D7下测试通过:procedure TForm1.Button1Click(Sender: TObject);
    const
      PreChar='<user>';
      FixChar='</user>';
    var
      posA:integer;
      tmpS:String;
    begin
      tmpS:=memo1.Text;
      posA:=pos(PreChar,LowerCase(tmpS));
      delete(tmpS,1,posA+length(preChar));
      posA:=pos(FixChar,LowerCase(tmpS));
      if posA>0 then
        memo2.Text:=copy(tmpS,0,posA-1);
    end;
      

  3.   

    上边那位朋友你好
    我的目的是将Memo1中所有的<user>和 </user>间字符串放入到Memo2里.
    你的代码,我测试后,只能读取第一个<user>和 </user>间的字符串并放入Memo2中
    后边的..就没有效果了.
    比如是
    <HTML><HEAD><TITLE>Query the APNIC Whois Database</TITLE><link rel="Shortcut Icon" href="/favicon.ico">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="Content-Style-Type" content="text/css">
    <meta http-equiv="Content-Script-Type" content="text/javascript">
    <meta name="Format" content="Html">
    <meta name="Type" content="Form">
    <meta name="Function" content="Form">
    <meta name="Availability" content="Public - Members">
    <user>lovemit</user>
    <a href="http://bluecross.163.com/"><span class="cBlue">行动</span></a><br />
    <a href="http://bluecross.163.com/08/1002/10/4N89H26V00012NUO.html">忽悠!</a><br />
    <user>baidu</user>
    <a href="http://bluecross.163.com/"><span class="cBlue">行动</span></a><br />
    <a href="http://bluecross.163.com/08/1002/10/4N89H26V00012NUO.html">忽悠!</a><br />
    <user>csdn.com</user>
    上边只是一个例子,随便复制的一些源码..目的是想取得红色<user>这里是我想取的</user>中间部分,将红色的部分写入到Memo2中!
      

  4.   

    我测试用的地址是昨天你发的那个地址,要提取IP吧
    http://wq.apnic.net/apnic-bin/whois.pl?searchtext=CHINANET-GD&whois=Goprocedure TForm1.Button1Click(Sender: TObject);
    const
      PreChar='<b><u>inetnum</u></b>:';
      FixChar='netname:';
    var
      posA,posB:integer;
      tmpS:String;
    begin//昨天那个帖的分数都给我了吧 嘿嘿 偶脸皮有点厚了
      tmpS:=memo1.Text;
      memo2.Lines.Clear;
      repeat
      posA:=pos(PreChar,tmpS);
      if posA=0 then break;
      posB:=pos(FixChar,tmpS);
      memo2.Text :=memo2.Text+trim(copy(tmpS,posA+23,posB-posA-23))+#13;
      delete(tmpS,1,posB+10);
      until 1=2;
    end;end.共提取出23个,我从网页上数了数,一个也不少202.96.128.0 - 202.96.191.255
    202.103.128.0 - 202.103.191.255
    202.104.0.0 - 202.104.255.255
    202.105.0.0 - 202.105.255.255
    218.13.0.0 - 218.18.255.255
    218.19.0.0 - 218.20.255.255
    219.128.0.0 - 219.137.255.255
    59.32.0.0 - 59.42.255.255
    61.140.0.0 - 61.146.255.255
    218.13.0.0 - 218.20.255.255
    58.60.0.0 - 58.63.255.255
    125.88.0.0 - 125.95.255.255
    121.8.0.0 - 121.15.255.255
    121.32.0.0 - 121.35.255.255
    116.16.0.0 - 116.31.255.255
    116.4.0.0 - 116.7.255.255
    61.144.0.0 - 61.144.255.255
    61.144.255.248 - 61.144.255.255
    61.145.0.0 - 61.145.255.255
    61.146.0.0 - 61.146.255.255
    119.128.0.0 - 119.143.255.255
    119.120.0.0 - 119.127.255.255
    119.144.0.0 - 119.147.255.255
      

  5.   

    顺便说一下,如果你想用你4楼那个例子测试的话,把这句memo2.Text :=memo2.Text+trim(copy(tmpS,posA+23,posB-posA-23))+#13; 
    中的两个23换成6,它是<user>的长度
      

  6.   

    呵呵
    谢谢了.
    我自己研究出来了...本想过来关掉这个问题的
    谁知道...jmxb123 这位朋友竟然说出了一个方法.
    分就给你吧...
    希望能交个朋友.