Visual Basic/檔案
| 此頁面或部分是一個未開發的草稿或大綱。 您可以幫助開發工作,或者您可以在專案室中尋求幫助。 |
Visual Basic 的另一個重要部分是檔案輸入/輸出,即處理檔案。在程式設計時,您可能希望在某些時候儲存資料,以便以後訪問。這就是檔案 I/O 的用處。VB 允許我們執行 Windows 資源管理器和 DOS 命令列中提供的大多數操作。在您開始之前,您需要了解檔案 I/O 的工作原理。
VB 通常將資料排列成記錄和欄位,以方便程式設計師使用。最好的解釋方法是透過舉例說明
Bob,Larry,George Kevin,Ken,Alec
這顯然是包含姓名的資料。每行資料稱為一條記錄。因此,第一條記錄包含 Bob、Larry 和 George。一個欄位是記錄中的每一項。因此,第一條記錄中的第一個欄位是 Bob,第二個欄位是 Larry,依此類推。您可以根據需要設定任意數量的欄位和記錄。
記錄和欄位實際上只是為了方便程式設計師而建立的。為了獲得更大的靈活性,您也可以將整個內容視為一個字串。您可以使用內建的 Split() 函式將字串拆分為記錄和欄位。
當程式從外部來源接收資料時,它被認為是輸入。在 Visual Basic 中,此來源通常是標準文字檔案,具有 .txt 副檔名(可以使用記事本讀取)。首先,您需要開啟要從中讀取資料的檔案。這是使用以下程式碼完成的
Open <filename> For <mode> As <channelnumber>
例如
Open "c:\filename.txt" For Input As #1
檔案路徑可以是您想要的任何內容,如果不存在,將建立新的檔案(和目錄)。檔案的副檔名並不重要。它不會影響檔案的內容或寫入/讀取檔案的過程。所以你也可以這樣做
Open "c:\filename.myfile" For Input As #1
或者這樣
Open "c:\filename" For Input As #1
開啟和檔案路徑是不言自明的。但是,“用於輸入”表示它被用來從外部檔案接收資料,VB 將資料從檔案“輸入”到變數中。在輸出(寫入檔案)時,這將更改為“用於輸出”。當我們想以二進位制方式開啟檔案時,它是“用於二進位制”。“作為 #1”是指正在使用的通道。當您要從檔案中查詢特定資訊時,您將使用“用於隨機”。通道可以被視為 Visual Basic 為檔案設定的路徑。一個通道一次只能使用一個檔案。因此,如果您想開啟多個檔案而不關閉任何檔案,您可以使用不同的通道。要輸入一行資料,它非常簡單
Input <channel>, <variables>
例如
Input #1, x, y, z
這將從通道 1 連線到的任何內容中讀取資料。它將把當前記錄的第一個欄位儲存到 X 中,第二個欄位儲存到 Y 中,第三個欄位儲存到 Z 中。
最後,我們應該始終在完成工作後關閉檔案。語法很簡單
Close <channel>
舉個例子
Close #1
有關使用輸入的更多資訊將在“資料使用”部分介紹。
注意:如果程式碼將成為更大程式的一部分,應以動態方式而不是硬編碼的方式獲取通道號。這是使用函式 FreeFile() 完成的
Dim nLogFile As Long nLogFile = FreeFile() Open "c:\filename" For Input As #nLogFile ... Close #nLogFile
輸出與輸入非常相似。唯一的區別是,它將資訊傳送出程式並進入檔案。再次,我們只使用文字檔案 (.txt)。首先,您必須開啟檔案
Open "C:\filepath.txt" For Output As #1
您可能已經注意到,與開啟用於輸入的檔案唯一的區別是“用於輸出”。完成此操作後,其他所有操作都非常簡單。
Write #1, x, 5
假設 X = 3,如果您開啟文字文件,它將如下所示
3, 5
您可以將任何值或變數寫入檔案,但需要注意的是,在寫入字串時,應將其放在引號中。如果它是包含字串的變數,則會自動執行此操作。另一個重要提示是,兩個連續的寫入語句將寫入不同的行。例如
Write #1, 5, 4 Write #1, 7, 4 Write #1, "this is a string"
將出現在檔案中,如下所示
5, 4 7, 4 "this is a string"
請記住,在輸出到檔案時,它將擦除文字中所有先前的資訊。要新增到現有資訊中,必須使用“追加”命令。
如果您將資料寫入檔案供其他程式使用,您可能會發現您不希望 VB 將引號放在您的字串周圍。您可以透過使用 Print 命令而不是 Write 命令來避免寫入引號。例如
Print #1, "this is a string"
將出現在檔案中,如下所示
this is a string
如果在執行時,正在處理的檔案被修改,並且添加了一行包含必要資料的新行,並且 open 語句以“#1”結束,那麼檔案中第 1 行中的任何內容都將被覆蓋(只有在檔案以 Output 方式開啟時)。為了解決這個問題,一個變數被宣告為 FreeFile(Dim FF as FreeFile)。這將開啟正在處理檔案中的第一個空閒插槽或行。新的 Open 語句將變為
Open "C:\filepath.txt" For Output As FF
(將擦除檔案)
Open "C:\filepath.txt" For Append As FF
(將不會擦除檔案)
使用第二個語句,將寫入檔案中的第一個空閒行。
在實踐中,open 語句很少像這樣
Open "C:\filepath.txt" For Append As FF
通常,檔案路徑將儲存在字串變數中
Dim s As String s = "C:\filepath.txt" Open s For Append As FF
變數s只需要儲存檔案的路徑。路徑可以是絕對路徑,例如
s = "d:\users\me\my file.txt"
或當前目錄中的檔案(使用CurDir找出它是哪個)
s = "my file.txt"
或相對於當前目錄的路徑,例如
s = "..\you\your file.txt"
或像這樣
s = "mysub\myother file.txt"
對於更具冒險精神的人來說,它還可以包括對伺服器上共享檔案的引用,該伺服器不使用驅動器號
s = "\\someserver\someshare\somefile.txt"
可以在此處找到使用檔案讀取的示例窗體。在 Internet Explorer 中右鍵單擊“此處”,然後選擇“將目標另存為...”來儲存窗體檔案。
請上傳更多包含示例的檔案。這對開發人員來說將非常有幫助。
| 上一頁:陣列 | 目錄 | 下一頁:資料型別 |