看到有价值的链接,我们总想将其网址保存起来,以便将来访问。用手工的方法提取网页中的网址是一件单调乏味的事,需要反复复制、粘贴。
笔者利用VFP的低级文件函数编了一个小程序,可以快速提取HTML文件中的所有网址。源程序如下:
*html2url.prg
SET COMPATIBLE ON && 针对FSIZE():ON返回文件大小 OFF返回字段大小
SourceFileName=′c:/tszz/shtml.htm′
&&源文件名
TargetFileName=′c:/tszz/turl.htm′
&&目标文件名
IF FILE(SourceFileName) && 文件存在吗?
nUrlFile=FSIZE(SourceFileName)
&& 返回文件大小,最大64KB
UrlFile = FOPEN(SourceFileName,12)
ContentUrlFile=FREAD(UrlFile,nUrlFile)
&& 返回文件内容
ELSE
WAIT ′源文件不存在′ WINDOW NOWAIT
ENDIF
NewUrlFile = FCREATE(TargetFileName)
str1=ContentUrlFile && 源文件内容串
str2=′′ && 目标文件内容串
centi=INT(NUrlFile/100)
i=1
FOR i=1 TO nUrlFile &&在源文件中由文件头至文件尾进行搜索
IF INT(i/centi)=i/centi THEN
WAIT ′请稍候!正在转换...,已完成′+ALLTRIM(STR(ROUND(i/nUrlFile*100,0)))+′%′ WINDOW NOWAIT
ENDIF
IF SUBSTR(str1,i,2)=′〈A′ OR SUBSTR(str1,i,2)=′〈a′ THEN
j=i+1
DO WHILE SUBSTR (str1,j,4)〈〉′〈/A〉′ AND SUBSTR (str1,j,4)〈〉′〈/a〉′
j=j+1
ENDDO
str2=str2+SUBSTR(str1,i,j-i+4)+′〈br〉′+CHR(13)+CHR(10)
ENDIF
NEXT
IF UrlFile 〈 0 && 检查打开文件错误
WAIT ′不能打开文件′ WINDOW NOWAIT
ELSE &&如果没有错误,关闭文件
=FCLOSE(UrlFile) && 关闭文件
ENDIF
IF NewUrlFile 〈 0 THEN
WAIT ′不能打开或创建输出文件′WINDOW NOWAIT
ELSE
=FWRITE(NewUrlFile,str2)
&&写目标文件
=FCLOSE(NewUrlFile)
ENDIF
RETURN
① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;
② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。