網路城邦
上一篇 回創作列表 下一篇   字體:
訂閱新文章數的統計
2010/09/04 23:12:08瀏覽1186|回應3|推薦56
  筆者有訂閱部落格的文章,可是並非每日都閱讀,如果積存多日,再整批閱讀,會發生重複叫出部落客的問題。如果能設計一個工具,將同一位作者的新文章數統計出來,就不需要將文章清單一筆一筆叫出;它的好處是每一位作者只需要叫出一次,然後根據文章數,可以方便地決定想閱讀的篇數。
  想進行統計,需要設計一個程式和兩個資料檔,執行的環境是FOXPRO,程式名稱是ARTICLE.PRG,資料檔是ARTICLE.DBF,中間檔是ARTICLE2.DBF。
ARTICLE.DBF的資料結構,如下所示:
   欄位   欄位名稱                類型                             寬度  小數位數      索引   排序          Nulls
      1   REMARK                  字元型態                            1                                        否
      2   PAGE                    數值型態                            2                                        否
      3   CNT                     數值型態                            2                                        否
      4   CONTENT                 字元型態                          100                                        否
ARTICLE2.DBF的資料結構,如下所示:
     欄位   欄位名稱                類型                             寬度  小數位數      索引   排序          Nulls
      1   TITLE                   字元型態                           60                                        否
      2   CNT                     數值型態                            2                                        否
操作步驟如下:
(1) 將訂閱的文章清單複製到記事本。
(2) 在記事本中,將空白行和需用資料以外的內容去掉,每一行再往右退3格,存檔名稱例如取為XX.TXT。
(3) 進入FOXPRO。
(4) 將文章清單轉入資料檔,應打入如下的命令:
      USE ARTICLE
      ZAP
      APPEND FROM XX SDF
      USE
(5) 執行程式,應打入如下的命令:
      DO ARTICLE
(6) 將最後結果轉到一般文件檔,應打入如下的命令:
     USE ARTICLE
     COPY TO ARTICLE SDF
     USE
實際案例:
  程式執行前,資料檔ARTICLE.DBF的內容,如下所示:
【紅茶芢的部落格】部落格有 1 篇最新發表創作。  2010/09/03 07:32   刪除                             
【價值的迷失論】部落格有 5 篇最新發表創作。  2010/09/03 07:32   刪除                               
【曾經滄海難為水?除卻巫山不是雲】部落格有 4 篇最新發表創作。  2010/09/03 07:31   刪除              
【戀戀風塵的部落格】部落格有 1 篇最新發表創作。  2010/09/03 07:31   刪除                           
【戴媽醬廚心】部落格有 1 篇最新發表創作。  2010/09/02 07:32   刪除                                 
【價值的迷失論】部落格有 2 篇最新發表創作。  2010/09/02 07:32   刪除                                               
【熟女?示錄】部落格有 1 篇最新發表創作。  2010/09/02 07:32   刪除                                  
【MmMm的無牆教室】部落格有 1 篇最新發表創作。                                                      
【曾經滄海難為水?除卻巫山不是雲】部落格有 6 篇最新發表創作。  2010/09/02 07:32   刪除              
【開心的部落格】部落格有 1 篇最新發表創作。  2010/09/02 07:32   刪除                              
  程式ARTICLE.PRG的內容,如下所示(*號代表註解行):
SET TALK OFF
SET SAFETY OFF
* 打開資料檔
SELECT 1
USE ARTICLE
* 打開中間檔
SELECT 2
USE ARTICLE2
* 清檔
ZAP
* 產生索引檔
INDEX ON TITLE TO XX2
* 設行數計數器
MNO = 21
* 設頁次計數器
MPAGE = 0
* 將資料檔每一筆都處理一遍
SELECT 1
DO WHILE .NOT. EOF()
   * 行數每遇20,則頁數加1
   IF MNO >= 20
      MPAGE = MPAGE + 1
      MNO = 0
   ENDIF  
   MNO = MNO +1
   * 將頁數寫入資料檔
   REPLACE PAGE WITH MPAGE
   * 取得部落格的名稱
   MTITLE = LEFT(CONTENT,AT("】",CONTENT)+1)
   * 到中間檔去搜尋
   SELECT 2
   SEEK MTITLE
   * 如果找不到記錄
   IF .NOT. FOUND()
      APPEND BLANK
      * 將部落格名稱寫入中間檔
      REPLACE TITLE WITH MTITLE
      * 將文章數寫入中間檔
      REPLACE CNT WITH VAL(SUBSTR(A->CONTENT,AT("部落格有",A->CONTENT)+8,2))
   * 如果找得到記錄
   ELSE
      * 將文章數與原來的文章數相加,再寫入中間檔
      REPLACE CNT WITH CNT + VAL(SUBSTR(A->CONTENT,AT("部落格有",A->CONTENT)+8,2))  
      SELECT 1
      * 在資料檔註記重複記號
      REPLACE REMARK WITH "X"   
   ENDIF
   * 將資料檔移到下一筆
   SELECT 1
   SKIP
ENDDO
* 將資料檔關閉再打開
SELECT 1
USE
USE ARTICLE
* 將資料檔每一筆都處理一遍
DO WHILE .NOT. EOF()
   * 如果屬於非重複的部落格
   IF REMARK = " "
        * 取得部落格的名稱
        MTITLE = LEFT(CONTENT,AT("】",CONTENT)+1)
        * 到中間檔做搜尋
        SELECT 2
        SEEK MTITLE
        * 如果找得到
        IF FOUND()
           SELECT 1
           * 將文章數寫入資料檔
           REPLACE CNT WITH B->CNT
        ENDIF
   ENDIF
   * 將資料檔移到下一筆
   SELECT 1
   SKIP
ENDDO  
CLOSE ALL
SET SAFETY ON
SET TALK ON  
  程式執行後,中間檔ARTICLE2.DBF的內容摘錄,如下所示:
【堅強是我的名字】                                           1
【紅茶芢的部落格】                                           1
【價值的迷失論】                                             7
【幸福摩天輪】                                               1
【萬紫千虹】                                                 1
【法蘭客的部落格】                                           2
【熟女?示錄】                                                2
【曾經滄海難為水?除卻巫山不是雲】                           10
【Uncle's Blog】                                             2
【caja12 的部落格】                                          1
  備註:中間檔每一位部落客只會占一筆
程式執行後,資料檔ARTICLE.DBF的內容摘錄,如下所示:
  1  1【紅茶芢的部落格】部落格有 1 篇最新發表創作。  2010/09/03 07:32   刪除                             
  1  7【價值的迷失論】部落格有 5 篇最新發表創作。  2010/09/03 07:32   刪除                               
  1 10【曾經滄海難為水?除卻巫山不是雲】部落格有 4 篇最新發表創作。  2010/09/03 07:31   刪除              
  1  2【戀戀風塵的部落格】部落格有 1 篇最新發表創作。  2010/09/03 07:31   刪除                           
  2  1【戴媽醬廚心】部落格有 1 篇最新發表創作。  2010/09/02 07:32   刪除                                 
X 2  0【價值的迷失論】部落格有 2 篇最新發表創作。  2010/09/02 07:32   刪除                                               
X 2  0【熟女?示錄】部落格有 1 篇最新發表創作。  2010/09/02 07:32   刪除                                  
  2  1【MmMm的無牆教室】部落格有 1 篇最新發表創作。                                                      
X 3  0【曾經滄海難為水?除卻巫山不是雲】部落格有 6 篇最新發表創作。  2010/09/02 07:32   刪除              
  3  1【開心的部落格】部落格有 1 篇最新發表創作。  2010/09/02 07:32   刪除                              
備註:(1) 前面有X符號者,代表重複,應省略不看。
         (2) 左邊第1個數字代表在訂閱文章清單的頁次,第2個數字代表待閱讀的新文章數。
  訂閱的部落格文章,如果能每日閱讀,當然是最理想的;如果不能的話,統計每一位部落客多日的新文章數,然後再去閱讀,比起去一一叫出每日每位部落客的新文章省事。此次實作的環境是使用FOXPRO,當然也可以使用其它的程式環境來實作。
( 興趣嗜好電腦3C )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=glwang&aid=4383379

 回應文章

平平安安
等級:8
留言加入好友
訂閱新文章數的統計
2010/09/10 08:03

謝謝了

很好的分享....

王國良(阿國)(glwang) 於 2010-09-10 17:09 回覆:
  感謝開心小屋格友回應,本部落格從2009年6月底就設立軟體版,至今累積文章是60篇,但只有這篇是程式設計,本程式很實用,而且已附上程式註解,朋友們可改用自己熟悉的程式環境去設計。

思于
等級:8
留言加入好友
說到程式
2010/09/08 09:31

不行啦

對我來說

困難啦

王國良(阿國)(glwang) 於 2010-09-08 23:12 回覆:
  感謝思于老師回應,寫程式雖然有點麻煩,可是一旦設計完成,卻非常有用,未來我會針對需要,適時介紹一些小程式。

【無★言】雲遊到世界的另一端
等級:8
留言加入好友
FoxPro
2010/09/05 08:08
十年以上沒寫FoxPro的程式了,不清楚它近十年來的發展情形.現今還有人用FoxPro嗎?
王國良(阿國)(glwang) 於 2010-09-05 23:06 回覆:

  感謝無言格友回應,原來您也曾用過FOXPRO。微軟在多年前推出第9版,就決定不再推出下一版,而且維護只計畫做到2015年。現今由於微軟未再推廣,學校也少教,故使用的人應會越來越少,但我個人覺得,用來設計程式還蠻好用的。