高分求助?取html表格的问题?(0分)

  • 主题发起人 主题发起人 duanyu
  • 开始时间 开始时间
D

duanyu

Unregistered / Unconfirmed
GUEST, unregistred user!
我的一个取html表格的问题?如一个这样的数据:
</table>
<B><font size="4">名称: </font></B>AAA有限公司北京办事处
<BR> <B><font size="4">电话: </font></B>
(10) 42334234
<br><B><font size="4">传真: </font></B>
35345453
<BR>
<B><font size="4">地址: </font></B>
北京市xxxx<BR>
<B><font size="4">邮政编码: </font></B>100000
<BR>
<B><font size="4">产品: </font></B>QQQQQ
<BR>
请问我要取出表格中的文字应该怎么做?
 
这是我以前写的一段代码,用于提取网页中的文字。
你稍改一下就可以实现你的要求。
var
fi, fo: tfilestream;
bock, size: integer;
buff, BP: ^byte;
outbuf, outbp: ^byte;
outsize: integer;
n: integer;
begin
fi := tfilestream.Create('1.htm', fmOpenRead or fmShareDenyWrite);
fo := tfilestream.Create('1.txt', fmOpenWrite or fmShareDenyWrite);

size := fi.Size;
bock := 0;
outsize := 0;

getmem(buff, size);
getmem(outbuf, size);
fi.Read(buff^, Size);
BP := Buff;
outbp := outbuf;

for n := 1 to size do
begin
case bp^ of
60: inc(bock); //char <
62: dec(bock); //char >
123: inc(bock); //char {
125: dec(bock); //char }
else
if bock = 0 then
begin
outbp^ := bp^;
inc(outbp);
inc(outsize);
end;
end;

inc(bp);
end;

fo.Write(outbuf^, outsize);

freemem(buff);
freemem(outbuf);

fo.Free;
fi.Free;
 
谢谢上面,汉字怎么判断?
小弟水平有限,不知怎么改?
 
根本就无需判断汉字。
上面的程序很简单:
一个html文件,由<>{}包括起来的一般都是控制信息。
所以略过这些信息就可以把文本读出来了。
但是沿着这条路走下去实在是不怎么简单<pre>标志、&nbsp,
所以上面的程序只是很初步的达到了要求。
以你上面的html文件是完全可以正确提取文本的。但是不太清楚你的要求。
 
多谢远帆兄,假定名称/电话/传真...等(类型)在程序中只出现一次,
我现在要取出表格中的数据与数据库一一对对应,
即htm--->DB
 
那就要判断<>内的内容了。
你自已试试。
 
谢谢远帆兄,您能不能帮助写一下,我写的不得要领,
在下感激不尽
 
你给多少分呀?
 
远帆兄,现在分已用完,下次一定被上,多谢您了
 
你多弄几条记录我看看,数据取出后放在哪?
 
远帆兄,数据取出放到我们的数据库中
 
你不说清楚一点我不知道如何读取以及将数据传递给你们啊?
 
正则表达式
java和c#有
delphi不知道有没有
 
您的意思是,不太明白,我的Email:sylix@263.net
 
把你们的例子html发到我的信箱:yuan-fan@21cn.com
还有你们希望的输出方式?
 
多谢远帆兄,好的,高人呀
 
别捧我,说不定我做不出的呢?
 
可以给前后定一个标志串,顺序检索下来就可以,检索完一个串以后就把上面的部分去掉,
我也正在做这种东西,单独做一个站点的还可以,通用的还没有很好的解决方法.
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
760
import
I
I
回复
0
查看
814
import
I
I
回复
0
查看
592
import
I
后退
顶部