delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
文本内容处理的问题,请教! Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiBase/html/delphi_20061205001316290.html
我有一个asp的文本文件,要从里面读取一部分内容,格式是固定的  
   
  279行   <a   href="detailInter~classid~1~userID~195005.asp"   target="_blank"   style="font-size:   12px;   font-family:   Verdana;color:   #333333"><strong>SICA</strong></a><br>  
  这行要读取     userID~后到.asp前的     ID号   195005  
   
  283行   <td   height="7"><span   class="companyDepot-01">MANZANA   9,   GALPON   51,   ZOFRI,   IQUIQUE</span></td>  
  这行要读取   <span   class="companyDepot-01"></span>之间的内容MANZANA   9,   GALPON   51,   ZOFRI,   IQUIQUE  
   
  286行   <td><div   align="center"   class="companyDepot-02">Mr.   FRANCISCO   LEE   W.</div></td>  
  这行要读取<div   align="center"   class="companyDepot-02"></dev>之间的内容Mr.   FRANCISCO   LEE   W.  
   
  287   <td><div   align="center"   class="companyDepot-03">ACHIAG@ACHIAG.TIE.CL</div></td>  
  这行要读取<div   align="center"   class="companyDepot-03"></dev>之间的邮址ACHIAG@ACHIAG.TIE.CL  
   
  请问如何处理啊?

if   +字串处理..

能具体一点吗   :)

帮你写一个,其他的自己照样子做吧!  
  var  
          TmpStr   :   String;  
          Start,   End   :   Integer;  
   
          ID   :   String;  
  begin  
          TmpStr   :=   '<a   href="detailInter~classid~1~userID~195005.asp"   target="_blank"   style="font-size:   12px;   font-family:   Verdana;color:   #333333"><strong>SICA</strong></a><br/>';  
           
          Start   :=   Pos   (   TmpStr,   'userID~'   );  
          End       :=   Pos   (   TmpStr,   '.asp'         );  
   
          if   (   Start   >   0   )   and   (   End   >   0   )   then  
                  ID   :=   Copy   (   TmpStr,   Start   +   7,   End   -   Start   );  
   
          .....  
  end;

呵呵,我也帮你写了一个函数,你试一下:  
  function   TForm1.SearchInAsp(AspFileName,StartSunStr,FinishSubStr:string):string;  
  var  
        AspFile:TextFile;  
        TempStr,TempStr2:String;  
  begin  
        result:='';  
        assignfile(aspfile,AspFileName);  
        reset(aspfile);  
        while   not   eof(aspfile)   do  
              begin  
              readln(aspfile,TempStr);  
              if   pos(StartSunStr,TempStr)>0   then  
                    begin  
                    while   (pos(FinishSubStr,TempStr)<1)   and   (not   eof(aspfile))   do  
                                begin  
                                readln(aspfile,TempStr2);  
                                TempStr:=TempStr+TempStr2;  
                                end;  
                    Result:=copy(TempStr,pos(StartSunStr,TempStr)+length(StartSunStr),pos(FinishSubStr,TempStr)-pos(StartSunStr,TempStr)-length(StartSunStr));  
                    end;  
              if   Result<>''   then   break;  
              end;  
        closefile(aspfile);  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
        edit1.Text:=self.SearchInAsp('c:\a.asp','userID~','.asp');  
  end;  
  //注意,在*.asp的html代码里,极可能出现<span>.....</span>等写在多行的情况(本函数已作这种处理)。也极可能出现行首有空格等情况(本函数未处理)。所以,实际应用中,你要考虑各种异常,再改进。

谢谢,这里好人真多,谢谢各位啊     :)

posted on 2009-04-22 10:43 delphi2007 阅读(89) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。