文本内容处理的问题,请教! Delphi / Windows SDK/APIhttp://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>等写在多行的情况(本函数已作这种处理)。也极可能出现行首有空格等情况(本函数未处理)。所以,实际应用中,你要考虑各种异常,再改进。
谢谢,这里好人真多,谢谢各位啊 :)