文本内容处理的问题,请教!
2009-04-22 10:51
176 查看
文本内容处理的问题,请教! 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>等写在多行的情况(本函数已作这种处理)。也极可能出现行首有空格等情况(本函数未处理)。所以,实际应用中,你要考虑各种异常,再改进。
谢谢,这里好人真多,谢谢各位啊 :)
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>等写在多行的情况(本函数已作这种处理)。也极可能出现行首有空格等情况(本函数未处理)。所以,实际应用中,你要考虑各种异常,再改进。
谢谢,这里好人真多,谢谢各位啊 :)
相关文章推荐
- 如何使STATIC控件的背景透明以及动态改变控件文本内容时闪烁的问题
- [JSP+Struts]文本内容的换行显示问题
- 文本处理中的两个分类问题和矩阵运算SVD
- 批处理实现文本内容横列变纵列的代码
- 如何处理Dpm备份时“副本内容不一致”的问题
- POI教程之第二讲:创建一个时间格式的单元格,处理不同内容格式的单元格,遍历工作簿的行和列并获取单元格内容,文本提取
- 使用短信数据库监听特定号码短信并处理信息内容遇到的问题
- 使用VIM处理规则的文本内容的插入
- linux下用文本处理器处理二进制文件后的终端乱码问题
- 如何使STATIC控件的背景透明以及动态改变控件文本内容时闪烁的问题
- python解决文本乱码问题及文本二进制读取后的处理
- 数学之美 系列十八 - 矩阵运算和文本处理中的分类问题
- Jsoup抓取网页内容超时问题的处理
- 处理网站中的重复内容问题
- 关于ajax调用一般处理文件,传值内容过多后无法进入一般处理文件的问题
- 数学之美系列十八:矩阵运算和文本处理中的分类问题
- 利用TensorFlow和神经网络来处理文本分类问题
- 抓取网页中的内容、如何解决乱码问题、如何解决登录问题以及对所采集的数据进行处理显示的过程
- 如何处理Beyond Compare合并文本冲突的问题
- 用Excel打开csv文件时,如何处理数字内容展现会自动转换格式的问题