给分,远帆兄及各位?(100分)

  • 主题发起人 主题发起人 abcduan
  • 开始时间 开始时间
A

abcduan

Unregistered / Unconfirmed
GUEST, unregistred user!
多谢远帆兄及各位?
下面远帆兄写的

procedure TMainform.Button2Click(Sender: TObject);
const
Signal = '名称: 电话: 地址: 产品: 详细信息: 网址: 电邮: ';
var
Fi: TFileStream;
FS, MLen, Bock, m, n: Integer;
TiTle, Memo: string;
Buff, BP: ^char;
OP: Boolean;
begin
Bock := 0;
MLen := 0;
OP := False;

Fi := TFileStream.Create('c:/1.htm', fmopenread);
FS := Fi.Size;
Buff := AllocMem(FS);
BP := Buff;
Fi.ReadBuffer(Buff^, FS);
Fi.Free;

for n := 1 to FS do
begin
case bp^ of
'< ': begin
if (bock = 0) and (MLen < > 0) then
begin
Dec(BP, MLen);
Memo := '';
for m := 1 to MLen do
begin
if (BP^< > #13) and (BP^< > #10) and (BP^< > #32) then Memo := Memo + BP^; //去掉回车换行、空格带来的影响
Inc(bp);
end;

if OP then
begin
memo1.Lines.Add(TiTle + memo);
OP := not (OP);
end
else
if Pos(Memo, Signal) < > 0 then
begin
TiTle := Memo;
OP := not (OP);
end;
end;

MLen := 0;
inc(bock);
end;

'> ': dec(bock);
'{': inc(bock);
'}': dec(bock);
else
if bock = 0 then Inc(MLen);
end;

inc(bp);
end;

FreeMem(Buff);
end;

//哪位能解释一下,小弟不才
 
远帆兄在不?
 
这段程序先将网页读入内存缓冲区Buff,
然后对缓冲区进行搜索,被{}<>包括的都认为是控制信息,略过。
在><(注意顺序)之间的就是真正的网页文本。
提取出来,并在我们已知的关键字中搜索,如果没找到则略过,如果找到了,那么下
一个文本区的内容就是我们想要的,就提取出来。
 
远帆兄,您的QQ呢?
 
怎么对有些网页没效
 
你不是段玉?
 

Similar threads

后退
顶部