2005年8月17日 星期三

如果檔案太大打不開?

寫在前面:
這是筆者比較早期的文章,同樣的主題,如果以程式導向設計觀念去做,不會寫成這樣。


一位學弟問了一個大家經常碰到的問題,如果檔案太大打不開,怎麼辦?
有人說用UltraEdit應該沒有打不開的檔案。

那您可能沒有碰過一個659MB的文字檔吧?有位學弟每次用UltraEdit打開這個檔案,
出去吃過午餐之後UltraEdit才打開...

這個問題和之前在FORTRAN的課程裡「 FORTRAN入門課程(1)解決最簡單的問題」,
有異曲同工之妙。

這位學弟比較擅長VB,好吧,先用VB6畫一個類似下列的畫面


然後,分別把下列兩組code打進「開啟」和「讀取」兩個按鈕中。
「開啟」按鈕程式碼
Private Sub cmdOpen_Click()  
    CommonDialog1.ShowOpen
    '如果使用者沒選檔案時CommonDialog1.FileName是空字串
    If (Len(CommonDialog1.FileName) > 0) Then
        txtInputFile.Text = CommonDialog1.FileName
    End If
End Sub
「讀取」按鈕程式碼
Private Sub cmdRead_Click()
    Dim aLine As String
    Dim i As Integer
    dim FID as Integer

    List1.Clear
    '讓系統自動抓出可用的檔案號碼
    FID=FreeFile
    Open txtInputFile.Text For Input As #FID
    
        For i = 1 To Val(txtNumLines.Text)
            Line Input #FID, aLine
            List1.AddItem aLine
        Next i
        
    Close #FID
End Sub

以下是這個程式的執行畫面


按下「開啟」按鈕會出現下列畫面
 
選完您要預覽的檔案,按下「讀取」按鈕後,就可以看到龐大檔案的前20列!
如此一來,就不必出去吃過午餐之後UltraEdit才打開..., 注意看,這個檔案有47,655KB(約60萬筆資料)!! 至於,檔案內容是什麼,應該不必秀了吧?

如果,還想多看一點內容,可以把20改成您所想要的數字即可。
千萬要注意,VB的ListBox超過一定數量之後,就很...很...很........慢 :< 
如果, 你想讓您的生活變成彩色...
捲起袖子, 現在就開始吧.

沒有留言:

張貼留言