網路城邦
上一篇 回創作列表 下一篇   字體:
按發表先後排序的文章目錄之實作
2010/09/16 15:58:33瀏覽862|回應0|推薦47

  目前部落格的文章目錄只注重新文章,所以只能按發表的「新舊順序」排列,如果想按發表的「先後順序」觀看,只能從最後一頁的最後一筆往前看,也就是倒著看, 使用上實屬不便,因此本文擬介紹以FOXPRO來實作,使能按發表的先後排序來觀看文章目錄。
  想進行文章目錄的排序,需要設計一個程式和二個資料檔,執行的環境是FOXPRO,程式名稱是CATALOG.PRG,資料檔是CATALOG.DBF,中間檔是CATALOG0.DBF。
CATALOG0.DBF的資料結構,如下所示:
   欄位  欄位名稱    類型      寬度  小數位數      索引   排序  Nulls
   1     CONTENT   字元型態  100                                            否
CATALOG.DBF的資料結構,如下所示:
   欄位  欄位名稱    類型      寬度  小數位數      索引   排序   Nulls
      1   ARTICLE   字元型態  60                                                 否
      2   CATEGORY 字元型態  14                                              否
      3   DATE      字元型態  16                                                    否
      4   BROWSE   字元型態   9                                                  否
      5   RESPONSE  字元型態  6                                                 否
      6   RECOMMEND 字元型態 6                                             否
      7   QUOTE      字元型態  6                                                   否
操作步驟如下:
(1) 將所有的文章目錄清單,一頁一頁地複製到記事本。
(2) 存檔名稱例如取為XX.TXT。
(3) 進入FOXPRO。
(4) 執行程式,應打入如下的命令:
      DO CATALOG
(5) 程式自動將最後結果轉到一般文件檔,名稱是CATALOG.TXT,可用記事本等編輯程式叫出。
實際案例:
  程式CATALOG.PRG的內容,如下所示(*號代表註解行):
SET TALK OFF
SET SAFETY OFF
* 打開中間檔,並將文章目錄資料併入
SELECT 1
USE CATALOG0
ZAP
APPEND FROM \GLWANG\XX SDF
USE
USE CATALOG0
* 打開資料檔
SELECT 2
USE CATALOG
ZAP
* 處理資料檔的每一筆記錄
SELECT 1
DO WHILE .NOT. EOF()
* 如果不是空白行或回應的日期時間行
   IF LEFT(CONTENT,10) <> SPACE(10)
     SELECT 2
     APPEND BLANK
   * 將文章名稱填入欄位
     REPLACE ARTICLE WITH TRIM(A->CONTENT)
     SELECT 1
   * 跳到文章的其它資訊列
     SKIP
     SKIP   
   * 計算瀏覽計數開始的位置
 A2= AT("|", CONTENT,2)
   * 計算回應計數開始的位置
     A3= AT("|", CONTENT,3)
   * 計算推薦計數開始的位置
     A4= AT("|", CONTENT,4)
   * 計算引用計數開始的位置
     A5= AT("|", CONTENT,5)
     SELECT 2
   *將類別資訊填入欄位
     REPLACE CATEGORY WITH SUBSTR(A->CONTENT,2,A2-19)
   *將日期時間資訊填入欄位
REPLACE DATE WITH SUBSTR(A->CONTENT,A2-17,16)
   *將瀏覽人次填入欄位
REPLACE BROWSE WITH SUBSTR(A->CONTENT,A2+2,A3-A2-2)
   *將回應人次填入欄位
REPLACE RESPONSE WITH SUBSTR(A->CONTENT,A3+2,A4-A3-2)
   *將推薦人次填入欄位
REPLACE RECOMMEND WITH SUBSTR(A->CONTENT,A4+2,A5-A4-2)
   *將引用人次填入欄位
REPLACE QUOTE WITH SUBSTR(A->CONTENT,A5+2)
   ENDIF  
   SELECT 1
   SKIP
ENDDO
* 按發表日期的先後,為資料檔建立索引檔
SELECT 2
INDEX ON DATE TO CATALOG
* 瀏覽按發表先後排序的文章目錄
BROWSE
CLOSE ALL
SET SAFETY ON
SET TALK ON
  程式執行後,中間檔CATALOG0.DBF的內容摘錄,如下所示:
    記錄編號  CONTENT                                                                                                                                              
           1   「蓮花」與「荷花」,您寫那一個?                                                                                                                    
           2                                                                                                                                                       
           3   知識學習|語言  2010/09/13 17:59 |瀏覽 76|回應 0|推薦 40|引用 0                                                                                 
           4                                                                                                                                                       
           5                                                                                                                                                       
           6                                                                                                                                                       
           7                                                                                                                                                       
           8   台灣最常見的十種鳥類之英文名                                                                                                                        
           9  2010/09/13 02:17                                                                                                                                     
          10   知識學習|語言  2010/09/08 18:06 |瀏覽 146|回應 1|推薦 63|引用 0                 

  程式執行後,資料檔CATALOG.DBF的內容摘錄,如下所示:
  記錄編號  ARTICLE                                                CATEGORY              DATE                     BROWSE       RESPONSE     RECOMMEND     QUOTE   
           1   「蓮花」與「荷花」,您寫那一個?                      知識學習|語言        2010/09/13 17:59         瀏覽 76      回應 0       推薦 4        引用 0  
           2   台灣最常見的十種鳥類之英文名                            知識學習|語言        2010/09/08 18:06         瀏覽 146     回應 1       推薦 6        引用 0  
           3   訂閱新文章數的統計                                                網路資訊|軟體        2010/09/04 23:12         瀏覽 206     回應 3       推薦 5        引用 0  
           4   常吃的蔬菜之英文名(第三篇)                                 知識學習|語言        2010/08/31 18:27         瀏覽 212     回應 2       推薦 5        引用 0  
           5   蚯蚓藏地下,線索留地上【有趣的漢字】            知識學習|語言        2010/08/28 17:13         瀏覽 207     回應 1       推薦 6        引用 0  
           6   更改主校名的私立大學之簡介                                知識學習|其他        2010/08/25 12:12         瀏覽 278     回應 0       推薦 6        引用 0  
           7   以台灣的地名為名的私立大學之簡介                     知識學習|其他        2010/08/21 23:23         瀏覽 288     回應 2       推薦 5        引用 0  
           8   部首「曰」與「日」,長相很相似                         知識學習|語言        2010/08/18 12:45         瀏覽 267     回應 2       推薦 6        引用 0  
           9   植物園裡的鳥兒之英文名                                        知識學習|語言        2010/08/13 10:21         瀏覽 292     回應 0       推薦 6        引用 0  
          10   同時擁有「雙胞胎」和「三胞胎」的漢字部首    知識學習|語言        2010/08/11 13:07         瀏覽 385     回應 9       推薦 5        引用 0  
  程式執行的結果放入CATALOG.TXT,內容摘錄前10筆,如下所示:
ARTICLE                                   CATEGORY    DATE     BROWSE  RESPONSE RECOMMEND QUOTE   
部落格開張了                             心情隨筆|雜記 2009/06/16 14:41 瀏覽 319 回應 0 推薦 3  引用 0
日劇「請問芳名」真的很好看   休閒生活|影視 2009/06/17 16:12 瀏覽 708 回應 1 推薦 5  引用 0  
有趣的國字                                   知識學習|語言 2009/06/18 14:49 瀏覽 512 回應 0 推薦 1  引用 0  
日劇「請問芳名」的結局很感人 休閒生活|影視 2009/06/19 13:37 瀏覽 941 回應 1 推薦 1 引用 0  
寫國字,好像在畫畫                   知識學習|語言 2009/06/19 13:41 瀏覽 340回應 1 推薦 3  引用 0  
店名密碼的解密                            知識學習|語言 2009/06/22 15:38 瀏覽 439回應 0 推薦 3 引用 0  
同樣是中文字,長相卻不同       知識學習|語言 2009/06/22 13:48 瀏覽 413 回應 1 推薦 6  引用 0  
與家禽家畜有關的國字                知識學習|語言 2009/06/23 11:37 瀏覽 420回應 0 推薦 1 引用 0  
意境很美的國字                            知識學習|語言 2009/06/24 09:44 瀏覽 730回應 0 推薦 5 引用 0  
天干與地支,也可以組成漢字       知識學習|語言 2009/06/25 11:07 瀏覽 435回應 1 推薦 2 引用 0  
  備註:由於筆者電腦螢幕解析度較低,拍攝效果不佳,故將執行結果以一般文件檔呈現。
    筆者目前的文章數是226篇,目錄總共12頁,將文章目錄複製到記事本,只要少少的幾分鐘,執行程式一次只要幾秒鐘,之後就可見到按發表先後排序的文章目錄。部落格系統目前所缺的功能,透過簡單的程式設計,就可具體的實現。

( 興趣嗜好電腦3C )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

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