快速獲取網(wǎng)址一法

字號:

看到有價(jià)值的鏈接,我們總想將其網(wǎng)址保存起來,以便將來訪問。用手工的方法提取網(wǎng)頁中的網(wǎng)址是一件單調(diào)乏味的事,需要反復(fù)復(fù)制、粘貼。
    筆者利用VFP的低級文件函數(shù)編了一個(gè)小程序,可以快速提取HTML文件中的所有網(wǎng)址。源程序如下:
    *html2url.prg
    SET COMPATIBLE ON && 針對FSIZE():ON返回文件大小 OFF返回字段大小
    SourceFileName=′c:\tszz\shtml.htm′
    &&源文件名
    TargetFileName=′c:\tszz\turl.htm′
    &&目標(biāo)文件名
    IF FILE(SourceFileName) && 文件存在嗎?
    nUrlFile=FSIZE(SourceFileName)
    && 返回文件大小,64KB
    UrlFile = FOPEN(SourceFileName,12)
    ContentUrlFile=FREAD(UrlFile,nUrlFile)
    && 返回文件內(nèi)容
    ELSE
    WAIT ′源文件不存在′ WINDOW NOWAIT
    ENDIF
    NewUrlFile = FCREATE(TargetFileName)
    str1=ContentUrlFile && 源文件內(nèi)容串
    str2=′′ && 目標(biāo)文件內(nèi)容串
    centi=INT(NUrlFile/100)
    i=1
    FOR i=1 TO nUrlFile &&在源文件中由文件頭至文件尾進(jìn)行搜索
    IF INT(i/centi)=i/centi THEN
    WAIT ′請稍候!正在轉(zhuǎn)換...,已完成′+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 && 檢查打開文件錯(cuò)誤
    WAIT ′不能打開文件′ WINDOW NOWAIT
    ELSE &&如果沒有錯(cuò)誤,關(guān)閉文件
    =FCLOSE(UrlFile) && 關(guān)閉文件
    ENDIF
    IF NewUrlFile 〈 0 THEN
    WAIT ′不能打開或創(chuàng)建輸出文件′WINDOW NOWAIT
    ELSE
    =FWRITE(NewUrlFile,str2)
    &&寫目標(biāo)文件
    =FCLOSE(NewUrlFile)
    ENDIF
    RETURN