我用过这些方法,如把网页HTML存在数据库中,然后在程序启动的同时读数据库中的网页文本,存入内存,然后通过文本替换的方法来更新我要更新的数据,可惜的是不能同时更新几个,只能一个一个更新。   网页如下:
 <td><a href="$jxdj$" style="width:auto;"><span>接修登记</span></a></td>
      <td width="35"></td>
      <td><a href="$jcbj$" style="width:auto;"><span>检测报价$jxbjOKOK$</span></a></td>
      <td width="15"></td>
      <td><a href="$jcwx$" style="width:auto;"><span>检测维修$jcwxOKOK$</span></a></td>
      <td width="30"></td>
      <td><a href="$xpzj$" style="width:auto;"><span>修品质检(可选)</span></a></td>
      <td width="25"></td>
      <td><a href="$jsqj$" style="width:auto;"><span>取机结算$LJJSOKOK$</span></a></td>
      <td width="30"></td>
      <td><a href="$shgb$" style="width:auto;"><span>审核关闭$shgbOKOK$</span></a></td>
我主要是想把红字的地方, $jcwxokok$ 更新为 (<font color="red">2</font>) 
       刚刚开始学,在Baidu这种问题不好搜,所以请有知道的高手回答一下。多谢。

解决方案 »

  1.   

    HTML也是文本文件,不一定要WebBrowser来做吧.直接用替换(麻烦点的用正则)
      

  2.   

    请问那有没有好的替换函数?我的是一次性的替换几个不同的内容。。function replac(S,source,target:string):string;       //多数个
    var
    site,StrLen:integer;
    i,k:integer;
    begin
    StrLen:=length(source);   // source的长度
    k:=Length(S);
    for I:=0 to k do
    begin
    site:=pos(source,s);      //source在S中出现的位置
    if site = 0 then
    break;
    delete(s,site,StrLen);    //删除source字符串
    insert(target,s,site);    //插入target字符串到S中
    replac:=s;              //返回新串
    end;
    var
      db,st:string;
      s,k:Tstrings;
    k:=TStringList.Create;
    K.Text:=replac(sub1,'$jxbjOKOK$','(可选)');
    k.Text:=replac(sub1,'$xpzjokok$','(可选)');
    k.text:=replac ...
    ....
    k.SaveToFile((ExtractFileDir(Application.Exename)+'\html\sub1.html'));
    k.Free;用这个只能替换一个。我本来想同时替换 $jxbjOKOK$ 及$xpzjokok$ 还有5个的内容。。
      

  3.   

    function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
    type TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);