Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

第 13 章 檔案與資料夾處理 13-1 檔案與資料夾操作 13-1 檔案與資料夾操作 13-2 循序檔案的文字檔案讀寫 13-2 循序檔案的文字檔案讀寫 13-3 隨機檔案的處理 13-3 隨機檔案的處理 13-4 二進位檔案的讀寫 13-4 二進位檔案的讀寫 13-5 檔案對話方塊 13-5 檔案對話方塊.

Liknende presentasjoner


Presentasjon om: "第 13 章 檔案與資料夾處理 13-1 檔案與資料夾操作 13-1 檔案與資料夾操作 13-2 循序檔案的文字檔案讀寫 13-2 循序檔案的文字檔案讀寫 13-3 隨機檔案的處理 13-3 隨機檔案的處理 13-4 二進位檔案的讀寫 13-4 二進位檔案的讀寫 13-5 檔案對話方塊 13-5 檔案對話方塊."— Utskrift av presentasjonen:

1 第 13 章 檔案與資料夾處理 13-1 檔案與資料夾操作 13-1 檔案與資料夾操作 13-2 循序檔案的文字檔案讀寫 13-2 循序檔案的文字檔案讀寫 13-3 隨機檔案的處理 13-3 隨機檔案的處理 13-4 二進位檔案的讀寫 13-4 二進位檔案的讀寫 13-5 檔案對話方塊 13-5 檔案對話方塊

2 13-1 檔案與資料夾操作 13-1-1 顯示資料夾與檔案清單 13-1-1 顯示資料夾與檔案清單 13-1-2 顯示檔案資訊 13-1-2 顯示檔案資訊 13-1-3 檔案刪除、更名與複製 13-1-3 檔案刪除、更名與複製

3 13-1-1 顯示資料夾與檔案清單 - 函數

4 13-1-1 顯示資料夾與檔案清單 - 使用 Dir 函數的使用範例,如下所示: Dir 函數的使用範例,如下所示: filename = Dir("*.txt", vbHidden) 如果需要下一個,請再次呼叫 Dir 函數,但是不需 任何的參數,如下所示: 如果需要下一個,請再次呼叫 Dir 函數,但是不需 任何的參數,如下所示: filename = Dir() 配合迴圈就可以取得資料夾下所有的檔案或子資 料夾清單,如下所示: 配合迴圈就可以取得資料夾下所有的檔案或子資 料夾清單,如下所示: strItem = Dir("*.*") Do Until strItem = "" lstFiles.Items.Add(strItem) lstFiles.Items.Add(strItem) strItem = Dir() ' 下一個 strItem = Dir() ' 下一個Loop

5 13-1-2 顯示檔案資訊 - 函數

6 13-1-2 顯示檔案資訊 - 使用 FileLen 和 FileDateTime 函數是針對檔案, GetAttr 函數同時可以取得檔案和資料夾屬 性,其使用範例,如下所示: FileLen 和 FileDateTime 函數是針對檔案, GetAttr 函數同時可以取得檔案和資料夾屬 性,其使用範例,如下所示: Dim fileAttr As FileAttribute fileAttr = GetAttr(txtFile.Text) 上述程式碼在宣告 FileAttribute 變數 fileAttr 後,呼叫 GetAttr 函數取得檔案的 屬性常數和,如下所示: 上述程式碼在宣告 FileAttribute 變數 fileAttr 後,呼叫 GetAttr 函數取得檔案的 屬性常數和,如下所示: FileAttribute.Normal Or FileAttribute.ReadOnly

7 13-1-2 顯示檔案資訊 - 常數

8 13-1-2 顯示檔案資訊 - 檢查檔案 屬性 在取得檔案或資料夾的屬性和後,程式碼使用 And 運算檢查是否擁有指定的屬性常數,如下所 示: 在取得檔案或資料夾的屬性和後,程式碼使用 And 運算檢查是否擁有指定的屬性常數,如下所 示: If (fileAttr And vbNormal) = _ FileAttribute.Normal Then FileAttribute.Normal Then out &= " 正常 Normal" & vbNewLine out &= " 正常 Normal" & vbNewLine End If 上述 If 條件檢查檔案屬性是否擁有 Normal 一般屬 性,在程式碼使用 FileAttribute 列舉常數或 VB.NET 常數都可以。 上述 If 條件檢查檔案屬性是否擁有 Normal 一般屬 性,在程式碼使用 FileAttribute 列舉常數或 VB.NET 常數都可以。

9 13-1-3 檔案刪除、更名與複製

10 13-2 循序檔案的文字檔案讀寫 13-2-1 檔案的種類 13-2-1 檔案的種類 13-2-2 文字檔案的讀寫 13-2-2 文字檔案的讀寫

11 13-2-1 檔案的種類 - 說明 檔案是儲存在電腦磁碟機中的位元組資料, VB.NET 應用程式存取檔案內容時需要知道位 元組資料是代表字元、數值、整數或字串,取 決於檔案存取類型,如下所示: 檔案是儲存在電腦磁碟機中的位元組資料, VB.NET 應用程式存取檔案內容時需要知道位 元組資料是代表字元、數值、整數或字串,取 決於檔案存取類型,如下所示: 循序檔案:擁有讀取( Input )、寫入( Output ) 和新增( Append )三種模式將字串資料寫入與讀 取文字檔案,例如:記錄檔和一般的文字檔案。 循序檔案:擁有讀取( Input )、寫入( Output ) 和新增( Append )三種模式將字串資料寫入與讀 取文字檔案,例如:記錄檔和一般的文字檔案。 隨機檔案:使用隨機( Random )模式,以類似資 料庫記錄( Records )的方式存取檔案內容,每一 個記錄的長度是相等的。 隨機檔案:使用隨機( Random )模式,以類似資 料庫記錄( Records )的方式存取檔案內容,每一 個記錄的長度是相等的。 二進位檔案:使用二進位( Binary )模式存取檔案 中的位元組資料,特別適用在可變長度的資料。 二進位檔案:使用二進位( Binary )模式存取檔案 中的位元組資料,特別適用在可變長度的資料。

12 13-2-1 檔案的種類 - 函數 VB.NET 存取各種類型檔案時,讀取和寫入檔案 的相關函數,如下表所示: VB.NET 存取各種類型檔案時,讀取和寫入檔案 的相關函數,如下表所示:

13 13-2-2 文字檔案的讀寫 - 開啟與 關閉檔案 1 VB.NET 在開啟、關閉或讀寫檔案時,都是使用 一個整數的檔案編號值來識別開啟的檔案(因為 程式可能同時開啟多個檔案),其相關函數,如 下表所示: VB.NET 在開啟、關閉或讀寫檔案時,都是使用 一個整數的檔案編號值來識別開啟的檔案(因為 程式可能同時開啟多個檔案),其相關函數,如 下表所示:

14 13-2-2 文字檔案的讀寫 - 開啟與 關閉檔案 2 在程式中首先使用 FreeFile 函數取得可用的檔案 編號,然後使用 FileOpen 函數開啟檔案,如下: 在程式中首先使用 FreeFile 函數取得可用的檔案 編號,然後使用 FileOpen 函數開啟檔案,如下: fileNum = FreeFile() FileOpen(fileNum, fileName, OpenMode.Output) 當然我們也可以自行指定整數的檔案編號,如下 所示: 當然我們也可以自行指定整數的檔案編號,如下 所示: FileOpen(1, fileName, OpenMode.Output) 檔案的存取類型是最後一個參數是 OpenMode 列 舉常數,以循序檔案來說有三種模式。 檔案的存取類型是最後一個參數是 OpenMode 列 舉常數,以循序檔案來說有三種模式。

15 13-2-2 文字檔案的讀寫 - 開啟與 關閉檔案 3 在執行完檔案內容存取的操作後,請執行 FileClose 函數關閉檔案,如下所示: 在執行完檔案內容存取的操作後,請執行 FileClose 函數關閉檔案,如下所示:FileClose(fileNum)

16 13-2-2 文字檔案的讀寫 - 讀取與 寫入檔案 1 在使用 OpenFile 函數成功的開啟檔案後,我們就 可以執行函數寫入或讀取檔案內容,其相關函數, 如下表所示: 在使用 OpenFile 函數成功的開啟檔案後,我們就 可以執行函數寫入或讀取檔案內容,其相關函數, 如下表所示:

17 13-2-2 文字檔案的讀寫 - 讀取與 寫入檔案 2 如果想將字串寫入檔案,只需呼叫 PrintLine 函數, 如下所示: 如果想將字串寫入檔案,只需呼叫 PrintLine 函數, 如下所示: PrintLine(fileNum, txtLine.Text) 如果是讀取檔案內容,也就是 Input 模式開啟的 檔案,我們可以使用 LineInput 函數讀取一行文 字內容,如果是整個檔案內容,需要使用迴圈來 處理,如下所示: 如果是讀取檔案內容,也就是 Input 模式開啟的 檔案,我們可以使用 LineInput 函數讀取一行文 字內容,如果是整個檔案內容,需要使用迴圈來 處理,如下所示: Do Until EOF(fileNum) strContent &= LineInput(fileNum) & vbNewLine strContent &= LineInput(fileNum) & vbNewLineLoop

18 13-3 隨機檔案的處理 13-3-1 VB.NET 的結構 13-3-1 VB.NET 的結構 13-3-2 隨機檔案的讀寫 13-3-2 隨機檔案的讀寫

19 13-3 隨機檔案的處理 循序檔案處理如同流水一般,只能單一方 向從頭讀到尾或寫入檔尾,並不能回頭重 寫或讀取,隨機檔案不同於循序檔案是以 記錄方式儲存,允許隨機存取其中任一筆 記錄或更改其資料。 循序檔案處理如同流水一般,只能單一方 向從頭讀到尾或寫入檔尾,並不能回頭重 寫或讀取,隨機檔案不同於循序檔案是以 記錄方式儲存,允許隨機存取其中任一筆 記錄或更改其資料。 隨機檔案是以記錄為存取單位,所以在建 立隨機檔案讀寫前,我們需要建立記錄的 結構,這就是 VB.NET 的結構。 隨機檔案是以記錄為存取單位,所以在建 立隨機檔案讀寫前,我們需要建立記錄的 結構,這就是 VB.NET 的結構。

20 13-3-1 VB.NET 的結構 - 語法 VB.NET 結構屬於一種自定的資料型別( User- Defined Types ),使用 Structure/End Structure 程式敘述來定義新型別,其語法如下 所示: VB.NET 結構屬於一種自定的資料型別( User- Defined Types ),使用 Structure/End Structure 程式敘述來定義新型別,其語法如下 所示: Structure 型別名稱 Public | Private | Dim 成員變數 Public | Private | Dim 成員變數 End Structure 上述語法定義新資料型別,在其中可以使用 Public 、 Private 、 Dim 關鍵字宣告成員變數,其 中 Private 宣告的成員變數只可以在 Structure/End Structure 結構中使用。 上述語法定義新資料型別,在其中可以使用 Public 、 Private 、 Dim 關鍵字宣告成員變數,其 中 Private 宣告的成員變數只可以在 Structure/End Structure 結構中使用。

21 13-3-1 VB.NET 的結構 - 範例 學生成績資料的結構 Student ,如下所示: 學生成績資料的結構 Student ,如下所示: Structure Student Public id As Integer Public id As Integer Public name As String Public name As String Public score As Integer Public score As Integer End Structure Student 是自訂的新型別,可以使用新型別宣告 變數,如下所示: Student 是自訂的新型別,可以使用新型別宣告 變數,如下所示: Dim std1 As Student std1.id = 1 std1.name = " 陳會安 " std1.score = 78

22 13-3-2 隨機檔案的讀寫 - 結構 在 VB.NET 應用程式開啟隨機檔案前,我們需要 先定義儲存資料的記錄結構,筆者直接修改上一 節的 Student 結構,如下所示: 在 VB.NET 應用程式開啟隨機檔案前,我們需要 先定義儲存資料的記錄結構,筆者直接修改上一 節的 Student 結構,如下所示: Structure Student Public id As Integer Public id As Integer Public name As String Public name As String Public score As Integer Public score As Integer End Structure VBFixedString 屬性指定字串的固定長度。 VBFixedString 屬性指定字串的固定長度。

23 13-3-2 隨機檔案的讀寫 - 開啟隨 機檔案 隨機檔案的開啟也是使用 FileOpen 函數, 檔案模式為 OpenMode.Random ,如下所 示: 隨機檔案的開啟也是使用 FileOpen 函數, 檔案模式為 OpenMode.Random ,如下所 示: FileOpen(fileNum, fileName, OpenMode.Random,,, recLength) 上述函數最後一個參數是記錄長度,也就 是前述結構的大小,可以使用 Len 函數取得 其大小。 上述函數最後一個參數是記錄長度,也就 是前述結構的大小,可以使用 Len 函數取得 其大小。 OpenAccess.Read or (Write, ReadWrite) OpenShare.Shared or (LockRead, LockWrite, LockReadWrite)

24 13-3-2 隨機檔案的讀寫 - 相關函 數

25 13-3-2 隨機檔案的讀寫 - 新增、 更新記錄 FilePut 和 FileGet 函數可以新增和取得記錄資料, 如下所示: FilePut 和 FileGet 函數可以新增和取得記錄資料, 如下所示: last += 1 FilePut(fileNum, std, last) 計算檔案已有多少筆記錄,如下所示: 計算檔案已有多少筆記錄,如下所示: FileOpen(1, fileName, OpenMode.Input) length = LOF(1) FileClose(1) last = length \ Len(std)

26 13-3-2 隨機檔案的讀寫 - 刪除記錄 完整記錄刪除的操作,如下所示: 完整記錄刪除的操作,如下所示: 建立新的隨機檔。 建立新的隨機檔。 將不是空的記錄一一複製到新檔中。 將不是空的記錄一一複製到新檔中。 使用 Kill 函數刪除原隨機檔。 使用 Kill 函數刪除原隨機檔。 使用 Rename 函數將新檔更名成原隨機檔。 使用 Rename 函數將新檔更名成原隨機檔。

27 13-4 二進位檔案的讀寫 - 開啟 在 VB.NET 程式開啟二進位檔案一樣是使用 FileOpen 函數,模式是 OpenMod.Binary , 如下所示: 在 VB.NET 程式開啟二進位檔案一樣是使用 FileOpen 函數,模式是 OpenMod.Binary , 如下所示: FileOpen(1, fileName, OpenMode.Binary) 在 Ch13-4 範例中 在 Ch13-4 範例中 txtOutput.Dock 設為 filltxtOutput.Dock 設為 fill Form1.TopMost 設為 TrueForm1.TopMost 設為 True

28 13-4 二進位檔案的讀寫 - 讀寫 FileGet 和 FilePut 函數,二進位和隨機檔案的 差異,如下所示: FileGet 和 FilePut 函數,二進位和隨機檔案的 差異,如下所示: FilePut 和 FileGet 是連續地從磁碟檔案寫入 和讀取資料,在處理資料時,並不用指定記 錄編號,如下所示:FilePut 和 FileGet 是連續地從磁碟檔案寫入 和讀取資料,在處理資料時,並不用指定記 錄編號,如下所示: FilePut(1, txtOutput.Text) FileGet 和 FilePut 函數在讀取和寫入可變長 度字串時,例如:文字檔案,並不會處理雙 位元組的中文字,而是將它視為 2 個字元, 所以在讀取和寫入字串時,一個中文字視為 2 個字元。FileGet 和 FilePut 函數在讀取和寫入可變長 度字串時,例如:文字檔案,並不會處理雙 位元組的中文字,而是將它視為 2 個字元, 所以在讀取和寫入字串時,一個中文字視為 2 個字元。

29 13-5 檔案對話方塊 - 種類 檔案對話方塊,依用途可以分為 2 種控制項, 如下所示: 檔案對話方塊,依用途可以分為 2 種控制項, 如下所示: OpenFileDialog 控制項:這個控制項是用來 選擇開啟的檔案,它就是 Windows 作業系統的 「開啟檔案」對話方塊。OpenFileDialog 控制項:這個控制項是用來 選擇開啟的檔案,它就是 Windows 作業系統的 「開啟檔案」對話方塊。 SaveFileDialog 控制項:這個控制項是用來 選擇儲存的檔案,它就是 Windows 作業系統的 「儲存檔案」對話方塊。SaveFileDialog 控制項:這個控制項是用來 選擇儲存的檔案,它就是 Windows 作業系統的 「儲存檔案」對話方塊。

30 13-5 檔案對話方塊 - 建立

31 13-5 檔案對話方塊 - 屬性

32 13-5 檔案對話方塊 - 使用 檔案對話方塊的開啟和其它預設對話方塊 相似。 檔案對話方塊的開啟和其它預設對話方塊 相似。 使用者在選好檔案後,傳回 DialogResult.OK ,程式碼只需使用 FileName 屬性就可以取得使用者選取檔案 的完整路徑。 使用者在選好檔案後,傳回 DialogResult.OK ,程式碼只需使用 FileName 屬性就可以取得使用者選取檔案 的完整路徑。


Laste ned ppt "第 13 章 檔案與資料夾處理 13-1 檔案與資料夾操作 13-1 檔案與資料夾操作 13-2 循序檔案的文字檔案讀寫 13-2 循序檔案的文字檔案讀寫 13-3 隨機檔案的處理 13-3 隨機檔案的處理 13-4 二進位檔案的讀寫 13-4 二進位檔案的讀寫 13-5 檔案對話方塊 13-5 檔案對話方塊."

Liknende presentasjoner


Annonser fra Google