FileSystem.FilePutObject 方法
將變數資料寫入磁碟檔案。My 功能提供比 FilePutObject 更強的檔案 I/O 作業產能和效能。如需詳細資訊,請參閱 My.Computer.FileSystem 物件。
命名空間: Microsoft.VisualBasic
組件: Microsoft.VisualBasic (在 microsoft.visualbasic.dll 中)
語法
'宣告
Public Shared Sub FilePutObject ( _
FileNumber As Integer, _
Value As Object, _
<OptionalAttribute> Optional RecordNumber As Long = -1 _
)
'用途
Dim FileNumber As Integer
Dim Value As Object
Dim RecordNumber As Long
FileSystem.FilePutObject(FileNumber, Value, RecordNumber)
public static void FilePutObject (
int FileNumber,
Object Value,
[OptionalAttribute] long RecordNumber
)
public:
static void FilePutObject (
int FileNumber,
Object^ Value,
[OptionalAttribute] long long RecordNumber
)
public static void FilePutObject (
int FileNumber,
Object Value,
/** @attribute OptionalAttribute() */ long RecordNumber
)
public static function FilePutObject (
FileNumber : int,
Value : Object,
RecordNumber : long
)
參數
- FileNumber
必要項。任何有效的檔案號碼。
- Value
必要項。有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
選擇項。寫入開始的資料錄數目 (Random 模式檔案) 或位元組數目 (Binary 模式檔案)。
備註
如需詳細資訊,請參閱 Visual Basic 的主題 FilePutObject 函式。
FilePutObject 函式會用來取代 FilePut,以避免在傳遞型別 Object 而非另一個型別 (如 Integer、Long 或 Short 等) 時,於編譯時期發生的模稜兩可 (Ambiguity) 情況。
FilePutObject 會編寫及讀取可描述物件的描述項。如果您打算寫出 Variant 型別,則需要 FilePutObject。當有疑問時,如果您在第二個參數上使用物件,建議您使用 FilePutObject 和 FileGetObject。
FilePutObject 只有在 Random 和 Binary 模式中是有效的。
以 FilePutObject 寫入的資料,通常都是使用 FileGetObject 自檔案中讀取。
檔案中的第一筆記錄或第一個位元組位於位置 1,第二筆記錄或第二個位元組位於位置 2,以此類推。如果省略 RecordNumber,FilePutObject 就會寫入最後一個 FileGetObject 或 FilePutObject 函式之後的下一個資料錄或位元組,或是最後一個 Seek 函式所指向的資料錄或位元組。
StringIsFixedLength 引數控制函式將字串解譯為可變或固定長度。當引數為 True 時,FilePutObject 就不會寫入長度描述項。如果您將 StringIsFixedLength = True 和 FilePutObject 一起搭配使用,就必須對 FileGetObject 執行相同的動作,而且也必須確定已將字串初始化為預期的長度。
隨機模式
下列規則適用於在 Random 模式下開啟的檔案:
如果所寫入資料的長度短於 FileOpen 函式中 RecordLength 子句所指定的長度,則 FilePutObject 會在資料錄長度界限上寫入後續的資料錄。資料錄結尾與下一個資料錄開頭之間的空間,已由檔案緩衝區的現有內容所填補。由於無法精確判斷填補資料的數量,所以通常最好讓資料錄的長度與寫入資料的長度相符。如果所寫入的資料長度長於 FileOpen 函式中 RecordLength 子句所指定的長度,則會擲回例外狀況。
如果寫入的變數是包含數字型別的物件,則 FilePutObject 會寫入識別物件 VarType 的二位元組,再寫入變數。例如,當寫入包含整數的物件時,FilePutObject 會寫入六個位元組:兩個位元組用於將此物件識別為 VarType(3) (Integer),而其他四個位元組用於包含資料。FileOpen 函式中 RecordLength 參數所指定的資料錄長度,至少必須要比儲存變數所需的實際位元組數多兩個位元組。
如果寫入的變數是包含字串的物件,則 FilePutObject 會寫入可識別物件 VarType(8) 的二位元組描述項,以及表示字串長度的二位元組描述項,然後再寫入字串資料。FileOpen 函式中 RecordLength 參數所指定的資料錄長度,至少必須要比字串的實際長度多四個位元組。如果您想要置入不含描述項的字串,就必須將 True 傳遞至 StringIsFixedLength 參數,而且讀入的字串之長度應該要正確。
如果要寫入的變數為陣列,您可以選擇是否要寫入陣列大小和維度的描述項。Visual Basic 6.0 (含) 之前版本會針對動態陣列寫入檔案描述項,但是不會針對固定大小的陣列寫入描述項;Visual Basic 預設為不寫入描述項。若要寫入描述項,請將 ArrayIsDynamic 參數設定為 True。寫入陣列時,您必須配合陣列讀取的方式;如果陣列將與描述項一起讀取,您就必須寫入描述項。描述項會指定陣列的陣序規範,每個陣序規範的大小和下限。它的長度等於 2 加 8,再乘以維度數:(2 + 8 * NumberOfDimensions)。FileOpen 函式中的 RecordLength 子句所指定的資料錄長度,必須大於或等於寫入陣列資料和陣列描述項所需的所有位元組總和。
二進位模式
對於在 Binary 模式下開啟的檔案而言,所有的 Random 模式規則都適用,但下列除外:
- FileOpen 函式中的 RecordLength 子句沒有作用。FilePutObject 將所有變數連續地寫入磁碟,也就是說,在資料錄之間沒有填補。
範例
這個範例使用 FilePutObject 函式將字串寫入檔案中。
Sub WriteData()
Dim text As String = "test"
FileOpen(1, "test.bin", OpenMode.Binary)
FilePutObject(1, text)
FileClose(1)
End Sub
平台
Windows 98、 Windows 2000 SP4、 Windows Millennium Edition、 Windows Server 2003、 Windows XP Media Center Edition、 Windows XP Professional x64 Edition、 Windows XP SP2、 Windows XP Starter Edition
.NET Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱系統需求一節的內容。
版本資訊
.NET Framework
支援版本:2.0、1.1、1.0
請參閱
參考
FileSystem 類別
FileSystem 成員
Microsoft.VisualBasic 命名空間
其他資源
FilePutObject 函式
FileGet 函式
FileOpen 函式
Seek 函式
FilePut 函式
My.Computer.FileSystem 物件
在 Visual Basic 中寫入檔案