Transcript 程式設計實習
程式設計實習 檔案存取 檔案存取 在電腦中要存取檔案最簡單也是最通 用的就是『文字檔』,在VB中亦提供 了基本的檔案存取,存取的方式可分 為『文字檔案』存取和『二進位檔案』 存取兩種,本單元僅就一般文字檔存 取做說明。 檔案存取步驟 步驟1:開檔。 步驟2:以讀(寫)函數讀(寫)檔案資料。 步驟3:處理資料。 步驟4:關閉檔案。 開檔-以FileOpen方式 語法: Microsoft.VisualBasic.FileOpen(參數1,參數2,參數3) 參數1:指定緩衝區之檔案編號,值為1~255。 參數2:要存取之檔案路徑及名稱,為字串型態。 參數3:檔案存取的方式,共5種,說明如下- OpenMode.Input:以純文字方式循序讀檔。 OpenMode.Binary:二進制讀檔。 OpenMode.Append:以附加資料的方式寫檔。 OpenMode.Output:以全新的方式寫檔。 OpenMode.Random:隨機存取檔案資料。 關閉檔案 語法: FileClose(檔案緩衝區編號) 說明: 若開檔案式為讀檔,在執行FileClose後會將緩衝 區釋放;若為寫檔方式,則會將緩衝區內的資料真 正的寫入到檔案中。 範例: FileClose(1) 開檔範例: Private Sub Button1_Click(ByVal …. Microsoft.VisualBasic.FileOpen(1,TextBox1.Text,OpenMode.Input) FileClose(1) End Sub 檔案緩衝區編號 檔案路徑 指定開檔模式為 純文字循序開檔 判斷指定的檔案存在 語法: 變數=System.IO.File.Exists(檔名路徑) 說明: 此函數可由系統判斷指定之檔案是否存在,若不存 在則會傳回『False』的值,反之則傳回『True』。 修改讀檔範例: Private Sub Button1_Click(ByVal …. If System.IO.File.Exists(TextBox1.Text)=True Then Microsoft.VisualBasic.FileOpen(1,TextBox1.Text,OpenMode.Input) FileClose(1) End If End Sub 純文字檔循序讀檔 要在VB2010中FileOpen文字檔的讀取法方有 下列二種: (一)一次讀取一筆資料,資料和資料間以逗號分開。 (二)一次讀取一行文字。 一次讀取一筆 語法: Input(檔案緩衝區編號,變數) 說明: 此函數用於檔案開啟後,執行時會以文字檔中的 『逗號』或『換行』符號做為每一筆資料之分隔符 號。 範例: Input(1,a) 從1號緩衝區中讀取兩筆資料後放入a變數中 以筆為單位讀取資料範例: Private Sub Button1_Click(ByVal …. Dim A As String If System.IO.File.Exists(TextBox1.Text)=True Then TextBox2.Text=“” Microsoft.VisualBasic.FileOpen(1,TextBox1.Text,OpenMode.Input) Whlie Not EOF(1) Input(1,A) TextBox2.Text= TextBox2.Text & A & vbNewLine End While FileClose(1) End If End Sub 一次讀取一行 語法: 變數=LineInput(檔案緩衝區編號) 說明: 此函數用於檔案開啟後,執行時會以文字檔中的 『換行』符號做為每一行之分隔符號。 範例: A=LineInput(1) 從1號緩衝區中讀取一行筆資料後放入A變數中 以行讀取資料範例: Private Sub Button1_Click(ByVal …. Dim A As String If System.IO.File.Exists(TextBox1.Text)=True Then TextBox2.Text=“” Microsoft.VisualBasic.FileOpen(1,TextBox1.Text,OpenMode.Input) Whlie Not EOF(1) A=LineInput(1) TextBox2.Text= TextBox2.Text & A & vbNewLine End While FileClose(1) End If End Sub 以通用交談視窗選取檔案 在VB2010中和檔案存取有關的通用對話方塊有『OpenFileDialog』及 『SaveFileDialog 』兩個,常用屬性如下: 屬性名稱 說明 FileName 選取之檔案路徑及名稱 Title 指定對話方塊之標題文字 Filter 過濾顯示之檔案類型,如指定只顯示文字檔: ”純文字檔(*.txt)|*.txt” ”文字檔|*.txt|CVS檔|*.cvs” FilterIndex 傳回所選取之Filter類型序號 DefaultExt 設定存檔之預設附檔名,若存檔未指定類型則以此屬性 所指定之名稱為附檔名 SafeFileName 僅傳回所選取之檔案名稱,不含路徑 通用交談視窗實務上之使用方式 開啟OpenFileDialog對話方塊後,可能遇到使用者 輸入錯誤的檔名、取消選取等不正常的動作,為了 避免這些錯誤的操作模式造成後續資料處理上的問 題,一般程式在撰寫時會用以下的方式處理: Private Sub Button1_Click(ByVal …. If OpenFileDialog1.ShowDialog() = DialogResult.OK Then TextBox1.Text = OpenFileDialog1.FileName . . End If End Sub FileOpen的寫檔方式(一) 語法: Write(檔案緩衝區編號,變數1[,變數2,…]) 說明: 用此函數寫入檔案之資料,若資料型態為字串則每 一筆前後會自動加上『”』符號(代表字串),而每 一筆資料間會以逗號分隔。 範例: Wrtie(1,”A”) 將資料”A”寫入1號緩衝區中 FileOpen的寫檔方式(二) 語法: WriteLine(檔案緩衝區編號,變數1[,變數2,…]) 說明: 用此函數寫入檔案之資料,若資料型態為字串,則 每一筆前後會自動加上『”』符號(代表字串),而 每一次寫入的資料會自成一行。 範例: WrtieLine(1,”A”) 將資料”A”寫入1號緩衝區中 補充:開啟外部應用程式 語法: Shell(應用程式名稱,開啟時視窗模式) 說明: 應用程式名稱:包含程式路徑,為字串格式。 開啟時視窗模式:指定開啟的視窗之大小。 範例: Shell(“Notepad.exe c:\x.txt”, AppWinStyle.NormalFocus) 以筆記本開c根目錄下的x.txt檔案