FileSystem.FilePut 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱 FileSystem。
多載
FilePut(Int32, Int64, Int64) |
將變數資料寫入磁碟檔案。 相較於 |
FilePut(Int32, String, Int64, Boolean) |
將變數資料寫入磁碟檔案。 相較於 |
FilePut(Object, Object, Object) |
已淘汰.
已淘汰.
已淘汰.
將變數資料寫入磁碟檔案。 相較於 |
FilePut(Int32, ValueType, Int64) |
將變數資料寫入磁碟檔案。 相較於 |
FilePut(Int32, Single, Int64) |
將變數資料寫入磁碟檔案。 相較於 |
FilePut(Int32, Int32, Int64) |
將變數資料寫入磁碟檔案。 相較於 |
FilePut(Int32, Array, Int64, Boolean, Boolean) |
將變數資料寫入磁碟檔案。 相較於 |
FilePut(Int32, Double, Int64) |
將變數資料寫入磁碟檔案。 相較於 |
FilePut(Int32, Decimal, Int64) |
將變數資料寫入磁碟檔案。 相較於 |
FilePut(Int32, DateTime, Int64) |
將變數資料寫入磁碟檔案。 相較於 |
FilePut(Int32, Char, Int64) |
將變數資料寫入磁碟檔案。 相較於 |
FilePut(Int32, Byte, Int64) |
將變數資料寫入磁碟檔案。 相較於 |
FilePut(Int32, Boolean, Int64) |
將變數資料寫入磁碟檔案。 相較於 |
FilePut(Int32, Int16, Int64) |
將變數資料寫入磁碟檔案。 相較於 |
FilePut(Int32, Int64, Int64)
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public static void FilePut (int FileNumber, long Value, long RecordNumber = -1);
static member FilePut : int * int64 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Long, Optional RecordNumber As Long = -1)
參數
- FileNumber
- Int32
必要。 任何有效的檔案數目。
- Value
- Int64
必要。 有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
- Int64
選擇性。 寫入開始的資料錄數目 (Random
模式檔案) 或位元組數目 (Binary
模式檔案)。
例外狀況
RecordNumber
< 1 且不等於 -1。
檔案模式無效。
範例
此範例會使用函 FilePut
式將數據寫入檔案。 結構的 Person
五筆記錄會寫入檔案。
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
備註
FilePut
只有在和 Binary
模式中Random
才有效。
使用 FilePut
寫入的資料,通常會透過使用 FileGet
從檔案讀取。
檔案中的第一筆記錄或位元組位於位置 1、第二筆記錄或位元組位於位置 2,依此類故。 如果您省略 RecordNumber
,則最後一筆或FilePut
函式所指向的下一筆記錄或位元組FileGet
會寫入最後一個Seek
函式。
自變數可控制函 StringIsFixedLength
式將字串解譯為可變或固定長度。 FilePut
當自變數為 True
時,不會寫入長度描述元。 如果您搭配 FilePut
使用 StringIsFixedLength
= True
,則必須使用 FileGet
執行相同的動作,而且您必須確定字串已初始化為預期的長度。
隨機模式
針對以 Random
模式開啟的檔案,適用下列規則:
如果寫入的數據長度小於函式子句
FileOpen
中指定的RecordLength
長度,請在FilePut
記錄長度界限上寫入後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的空間會填補檔案緩衝區的現有內容。 由於無法以任何確定性判斷填補數據量,因此通常最好讓記錄長度符合所寫入數據的長度。 如果寫入的數據長度大於函式子句FileOpen
中指定的RecordLength
長度,則會擲回例外狀況。如果寫入的變數是字串,
FilePut
則寫入包含字串長度的雙位元組描述元,然後將進入變數的數據寫入。 因此,函式中FileOpen
子句指定的RecordLength
記錄長度必須至少為兩個大於字元串實際長度的位元組。如果寫入的變數是包含數值類型的物件,
FilePut
請寫入兩個識別VarType
物件的位元組,然後寫入變數。 例如,寫入包含整數的物件時,FilePut
會寫入六個字節:兩個字節,將對象識別為VarType(3)
()Integer
,以及包含數據的四個字節。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少兩個字節大於儲存變數所需的實際位元組數目。如果寫入的變數是包含字串的物件,
FilePut
請寫入識別 物件的兩個字節描述元VarType(8)
、指出字元串長度的雙位元組描述元,然後寫入字串數據。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少為四個大於字串實際長度的位元組。 如果您想要在沒有描述元的情況下放置字串,您應該傳遞True
至StringIsFixedLength
參數,而您讀取的字串應該是正確的長度。如果寫入的變數是陣列,您可以選擇是否要為數位的大小和維度撰寫描述元。 Visual Basic 6.0 和舊版會寫入動態陣列的檔案描述元,但不會寫入固定大小的陣列。 Visual Basic 2005 預設不會撰寫描述元。 若要寫入描述元,請將
ArrayIsDynamic
參數設定為True
。 撰寫陣列時,您必須符合數位將讀取的方式;如果使用描述元來讀取,則必須撰寫描述元。 描述項會指定陣列的排名、大小,以及每個排名的下限。 其長度等於 2 加上維度數目的 8 倍: (2 + 8 * NumberOfDimensions) 。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於寫入陣列數據和陣列描述元所需的所有位元組總和。 例如,當陣列寫入磁碟時,下列陣列宣告需要 218 個字節。Dim MyArray(4, 9) As Integer
如果寫入的變數是其他類型的變數, (不是可變長度字串或物件) ,
FilePut
則只會寫入變數數據。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於所寫入數據的長度。FilePut
會寫入結構的專案,就像是個別寫入一樣,不同之處在於元素之間沒有邊框間距。 屬性VBFixedString
可以套用至結構中的字串字段,以指出寫入磁碟時字元串的大小。注意
寫入磁碟時,屬性所指定的字串欄位會截斷超過指定的
VBFixedString
位元組。
二進位模式
對於以 Binary
模式開啟的 Random
檔案,大部分模式規則都會套用,但有一些例外。 在模式中 Binary
開啟的檔案下列規則與模式的規則 Random
不同:
函
RecordLength
式中的FileOpen
子句沒有任何作用。FilePut
連續將所有變數寫入磁碟,也就是記錄之間沒有填補。對於結構中陣列以外的任何陣列,
FilePut
只寫入數據。 未撰寫描述項。FilePut
會寫入非結構元素的可變長度字元串,而不需要雙位元組長度描述元。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 11 個字節寫入檔案編號 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
使用
FilePut
函式寫入檔案時,需要Write
從列舉存取 FileIOPermissionAccess 。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- 在 Visual Basic 中寫入檔案
適用於
FilePut(Int32, String, Int64, Boolean)
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public static void FilePut (int FileNumber, string Value, long RecordNumber = -1, bool StringIsFixedLength = false);
static member FilePut : int * string * int64 * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As String, Optional RecordNumber As Long = -1, Optional StringIsFixedLength As Boolean = false)
參數
- FileNumber
- Int32
必要。 任何有效的檔案數目。
- Value
- String
必要。 有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
- Int64
選擇性。 寫入開始的資料錄數目 (Random
模式檔案) 或位元組數目 (Binary
模式檔案)。
- StringIsFixedLength
- Boolean
選擇性。 只有在編寫字串時才適用。 指定是否要針對檔案的字串編寫二位元組字串長度的描述元。 預設為 False
。
例外狀況
RecordNumber
< 1 且不等於 -1。
檔案模式無效。
範例
此範例會使用函 FilePut
式將數據寫入檔案。 結構的 Person
五筆記錄會寫入檔案。
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
備註
FilePut
只有在和 Binary
模式中Random
才有效。
使用 FilePut
寫入的資料,通常會透過使用 FileGet
從檔案讀取。
檔案中的第一筆記錄或位元組位於位置 1、第二筆記錄或位元組位於位置 2,依此類故。 如果您省略 RecordNumber
,則最後一筆或FilePut
函式所指向的下一筆記錄或位元組FileGet
會寫入最後一個Seek
函式。
自變數可控制函 StringIsFixedLength
式將字串解譯為可變或固定長度。 FilePut
當自變數為 True
時,不會寫入長度描述元。 如果您搭配 FilePut
使用 StringIsFixedLength
= True
,則必須使用 FileGet
執行相同的動作,而且您必須確定字串已初始化為預期的長度。
隨機模式
針對以 Random
模式開啟的檔案,適用下列規則:
如果寫入的數據長度小於函式子句
FileOpen
中指定的RecordLength
長度,請在FilePut
記錄長度界限上寫入後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的空間會填補檔案緩衝區的現有內容。 由於無法以任何確定性判斷填補數據量,因此通常最好讓記錄長度符合所寫入數據的長度。 如果寫入的數據長度大於函式子句FileOpen
中指定的RecordLength
長度,則會擲回例外狀況。如果寫入的變數是字串,
FilePut
則寫入包含字串長度的雙位元組描述元,然後將進入變數的數據寫入。 因此,函式中FileOpen
子句指定的RecordLength
記錄長度必須至少為兩個大於字元串實際長度的位元組。如果寫入的變數是包含數值類型的物件,
FilePut
請寫入兩個識別VarType
物件的位元組,然後寫入變數。 例如,寫入包含整數的物件時,FilePut
會寫入六個字節:兩個字節,將對象識別為VarType(3)
()Integer
,以及包含數據的四個字節。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少兩個字節大於儲存變數所需的實際位元組數目。如果寫入的變數是包含字串的物件,
FilePut
請寫入識別 物件的兩個字節描述元VarType(8)
、指出字元串長度的雙位元組描述元,然後寫入字串數據。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少為四個大於字串實際長度的位元組。 如果您想要在沒有描述元的情況下放置字串,您應該傳遞True
至StringIsFixedLength
參數,而您讀取的字串應該是正確的長度。如果寫入的變數是陣列,您可以選擇是否要為數位的大小和維度撰寫描述元。 Visual Basic 6.0 和舊版會寫入動態陣列的檔案描述元,但不會寫入固定大小的陣列。 Visual Basic 2005 預設不會撰寫描述元。 若要寫入描述元,請將
ArrayIsDynamic
參數設定為True
。 撰寫陣列時,您必須符合數位將讀取的方式;如果使用描述元來讀取,則必須撰寫描述元。 描述項會指定陣列的排名、大小,以及每個排名的下限。 其長度等於 2 加上維度數目的 8 倍: (2 + 8 * NumberOfDimensions) 。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於寫入陣列數據和陣列描述元所需的所有位元組總和。 例如,當陣列寫入磁碟時,下列陣列宣告需要 218 個字節。Dim MyArray(4, 9) As Integer
如果寫入的變數是其他類型的變數, (不是可變長度字串或物件) ,
FilePut
則只會寫入變數數據。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於所寫入數據的長度。FilePut
會寫入結構的專案,就像是個別寫入一樣,不同之處在於元素之間沒有邊框間距。 屬性VBFixedString
可以套用至結構中的字串字段,以指出寫入磁碟時字元串的大小。注意
寫入磁碟時,屬性所指定的字串欄位會截斷超過指定的
VBFixedString
位元組。
二進位模式
對於以 Binary
模式開啟的 Random
檔案,大部分模式規則都會套用,但有一些例外。 在模式中 Binary
開啟的檔案下列規則與模式的規則 Random
不同:
函
RecordLength
式中的FileOpen
子句沒有任何作用。FilePut
連續將所有變數寫入磁碟,也就是記錄之間沒有填補。對於結構中陣列以外的任何陣列,
FilePut
只寫入數據。 未撰寫描述項。FilePut
會寫入非結構元素的可變長度字元串,而不需要雙位元組長度描述元。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 11 個字節寫入檔案編號 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
使用
FilePut
函式寫入檔案時,需要Write
從列舉存取 FileIOPermissionAccess 。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- 在 Visual Basic 中寫入檔案
適用於
FilePut(Object, Object, Object)
警告
This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202
警告
FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.
警告
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public:
static void FilePut(System::Object ^ FileNumber, System::Object ^ Value, System::Object ^ RecordNumber);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut (object FileNumber, object Value, object RecordNumber);
[System.Obsolete("FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.")]
public static void FilePut (object FileNumber, object Value, object RecordNumber);
[System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")]
public static void FilePut (object FileNumber, object Value, object RecordNumber = -1);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut (object FileNumber, object Value, object RecordNumber = -1);
[<System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")>]
static member FilePut : obj * obj * obj -> unit
Public Sub FilePut (FileNumber As Object, Value As Object, RecordNumber As Object)
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)
參數
- FileNumber
- Object
必要。 任何有效的檔案數目。
- Value
- Object
必要。 有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
- Object
選擇性。 寫入開始的資料錄數目 (Random
模式檔案) 或位元組數目 (Binary
模式檔案)。
- 屬性
例外狀況
RecordNumber
< 1 且不等於 -1。
檔案模式無效。
範例
此範例會使用函 FilePut
式將數據寫入檔案。 結構的 Person
五筆記錄會寫入檔案。
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
備註
FilePut
只有在和 Binary
模式中Random
才有效。
使用 FilePut
寫入的資料,通常會透過使用 FileGet
從檔案讀取。
檔案中的第一筆記錄或位元組位於位置 1、第二筆記錄或位元組位於位置 2,依此類故。 如果您省略 RecordNumber
,則最後一筆或FilePut
函式所指向的下一筆記錄或位元組FileGet
會寫入最後一個Seek
函式。
自變數可控制函 StringIsFixedLength
式將字串解譯為可變或固定長度。 FilePut
當自變數為 True
時,不會寫入長度描述元。 如果您搭配 FilePut
使用 StringIsFixedLength
= True
,則必須使用 FileGet
執行相同的動作,而且您必須確定字串已初始化為預期的長度。
隨機模式
針對以 Random
模式開啟的檔案,適用下列規則:
如果寫入的數據長度小於函式子句
FileOpen
中指定的RecordLength
長度,請在FilePut
記錄長度界限上寫入後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的空間會填補檔案緩衝區的現有內容。 由於無法以任何確定性判斷填補數據量,因此通常最好讓記錄長度符合所寫入數據的長度。 如果寫入的數據長度大於函式子句FileOpen
中指定的RecordLength
長度,則會擲回例外狀況。如果寫入的變數是字串,
FilePut
則寫入包含字串長度的雙位元組描述元,然後將進入變數的數據寫入。 因此,函式中FileOpen
子句指定的RecordLength
記錄長度必須至少為兩個大於字元串實際長度的位元組。如果寫入的變數是包含數值類型的物件,
FilePut
請寫入兩個識別VarType
物件的位元組,然後寫入變數。 例如,寫入包含整數的物件時,FilePut
會寫入六個字節:兩個字節,將對象識別為VarType(3)
()Integer
,以及包含數據的四個字節。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少兩個字節大於儲存變數所需的實際位元組數目。如果寫入的變數是包含字串的物件,
FilePut
請寫入識別 物件的兩個字節描述元VarType(8)
、指出字元串長度的雙位元組描述元,然後寫入字串數據。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少為四個大於字串實際長度的位元組。 如果您想要在沒有描述元的情況下放置字串,您應該傳遞True
至StringIsFixedLength
參數,而您讀取的字串應該是正確的長度。如果寫入的變數是陣列,您可以選擇是否要為數位的大小和維度撰寫描述元。 Visual Basic 6.0 和舊版會寫入動態陣列的檔案描述元,但不會寫入固定大小的陣列。 Visual Basic 2005 預設不會撰寫描述元。 若要寫入描述元,請將
ArrayIsDynamic
參數設定為True
。 撰寫陣列時,您必須符合數位將讀取的方式;如果使用描述元來讀取,則必須撰寫描述元。 描述項會指定陣列的排名、大小,以及每個排名的下限。 其長度等於 2 加上維度數目的 8 倍: (2 + 8 * NumberOfDimensions) 。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於寫入陣列數據和陣列描述元所需的所有位元組總和。 例如,當陣列寫入磁碟時,下列陣列宣告需要 218 個字節。Dim MyArray(4, 9) As Integer
如果寫入的變數是其他類型的變數, (不是可變長度字串或物件) ,
FilePut
則只會寫入變數數據。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於所寫入數據的長度。FilePut
會寫入結構的專案,就像是個別寫入一樣,不同之處在於元素之間沒有邊框間距。 屬性VBFixedString
可以套用至結構中的字串字段,以指出寫入磁碟時字元串的大小。注意
寫入磁碟時,屬性所指定的字串欄位會截斷超過指定的
VBFixedString
位元組。
二進位模式
對於以 Binary
模式開啟的 Random
檔案,大部分模式規則都會套用,但有一些例外。 在模式中 Binary
開啟的檔案下列規則與模式的規則 Random
不同:
函
RecordLength
式中的FileOpen
子句沒有任何作用。FilePut
連續將所有變數寫入磁碟,也就是記錄之間沒有填補。對於結構中陣列以外的任何陣列,
FilePut
只寫入數據。 未撰寫描述項。FilePut
會寫入非結構元素的可變長度字元串,而不需要雙位元組長度描述元。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 11 個字節寫入檔案編號 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
使用
FilePut
函式寫入檔案時,需要Write
從列舉存取 FileIOPermissionAccess 。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- 在 Visual Basic 中寫入檔案
適用於
FilePut(Int32, ValueType, Int64)
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public static void FilePut (int FileNumber, ValueType Value, long RecordNumber = -1);
static member FilePut : int * ValueType * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As ValueType, Optional RecordNumber As Long = -1)
參數
- FileNumber
- Int32
必要。 任何有效的檔案數目。
- Value
- ValueType
必要。 有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
- Int64
選擇性。 寫入開始的資料錄數目 (Random
模式檔案) 或位元組數目 (Binary
模式檔案)。
例外狀況
RecordNumber
< 1 且不等於 -1。
檔案模式無效。
範例
此範例會使用函 FilePut
式將數據寫入檔案。 結構的 Person
五筆記錄會寫入檔案。
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
備註
FilePut
只有在和 Binary
模式中Random
才有效。
使用 FilePut
寫入的資料,通常會透過使用 FileGet
從檔案讀取。
檔案中的第一筆記錄或位元組位於位置 1、第二筆記錄或位元組位於位置 2,依此類故。 如果您省略 RecordNumber
,則最後一筆或FilePut
函式所指向的下一筆記錄或位元組FileGet
會寫入最後一個Seek
函式。
自變數可控制函 StringIsFixedLength
式將字串解譯為可變或固定長度。 FilePut
當自變數為 True
時,不會寫入長度描述元。 如果您搭配 FilePut
使用 StringIsFixedLength
= True
,則必須使用 FileGet
執行相同的動作,而且您必須確定字串已初始化為預期的長度。
隨機模式
針對以 Random
模式開啟的檔案,適用下列規則:
如果寫入的數據長度小於函式子句
FileOpen
中指定的RecordLength
長度,請在FilePut
記錄長度界限上寫入後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的空間會填補檔案緩衝區的現有內容。 由於無法以任何確定性判斷填補數據量,因此通常最好讓記錄長度符合所寫入數據的長度。 如果寫入的數據長度大於函式子句FileOpen
中指定的RecordLength
長度,則會擲回例外狀況。如果寫入的變數是字串,
FilePut
則寫入包含字串長度的雙位元組描述元,然後將進入變數的數據寫入。 因此,函式中FileOpen
子句指定的RecordLength
記錄長度必須至少為兩個大於字元串實際長度的位元組。如果寫入的變數是包含數值類型的物件,
FilePut
請寫入兩個識別VarType
物件的位元組,然後寫入變數。 例如,寫入包含整數的物件時,FilePut
會寫入六個字節:兩個字節,將對象識別為VarType(3)
()Integer
,以及包含數據的四個字節。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少兩個字節大於儲存變數所需的實際位元組數目。如果寫入的變數是包含字串的物件,
FilePut
請寫入識別 物件的兩個字節描述元VarType(8)
、指出字元串長度的雙位元組描述元,然後寫入字串數據。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少為四個大於字串實際長度的位元組。 如果您想要在沒有描述元的情況下放置字串,您應該傳遞True
至StringIsFixedLength
參數,而您讀取的字串應該是正確的長度。如果寫入的變數是陣列,您可以選擇是否要為數位的大小和維度撰寫描述元。 Visual Basic 6.0 和舊版會寫入動態陣列的檔案描述元,但不會寫入固定大小的陣列。 Visual Basic 2005 預設不會撰寫描述元。 若要寫入描述元,請將
ArrayIsDynamic
參數設定為True
。 撰寫陣列時,您必須符合數位將讀取的方式;如果使用描述元來讀取,則必須撰寫描述元。 描述項會指定陣列的排名、大小,以及每個排名的下限。 其長度等於 2 加上維度數目的 8 倍: (2 + 8 * NumberOfDimensions) 。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於寫入陣列數據和陣列描述元所需的所有位元組總和。 例如,當陣列寫入磁碟時,下列陣列宣告需要 218 個字節。Dim MyArray(4, 9) As Integer
如果寫入的變數是其他類型的變數, (不是可變長度字串或物件) ,
FilePut
則只會寫入變數數據。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於所寫入數據的長度。FilePut
會寫入結構的專案,就像是個別寫入一樣,不同之處在於元素之間沒有邊框間距。 屬性VBFixedString
可以套用至結構中的字串字段,以指出寫入磁碟時字元串的大小。注意
寫入磁碟時,屬性所指定的字串欄位會截斷超過指定的
VBFixedString
位元組。
二進位模式
對於以 Binary
模式開啟的 Random
檔案,大部分模式規則都會套用,但有一些例外。 在模式中 Binary
開啟的檔案下列規則與模式的規則 Random
不同:
函
RecordLength
式中的FileOpen
子句沒有任何作用。FilePut
連續將所有變數寫入磁碟,也就是記錄之間沒有填補。對於結構中陣列以外的任何陣列,
FilePut
只寫入數據。 未撰寫描述項。FilePut
會寫入非結構元素的可變長度字元串,而不需要雙位元組長度描述元。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 11 個字節寫入檔案編號 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
使用
FilePut
函式寫入檔案時,需要Write
從列舉存取 FileIOPermissionAccess 。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- 在 Visual Basic 中寫入檔案
適用於
FilePut(Int32, Single, Int64)
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public static void FilePut (int FileNumber, float Value, long RecordNumber = -1);
static member FilePut : int * single * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Single, Optional RecordNumber As Long = -1)
參數
- FileNumber
- Int32
必要。 任何有效的檔案數目。
- Value
- Single
必要。 有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
- Int64
選擇性。 寫入開始的資料錄數目 (Random
模式檔案) 或位元組數目 (Binary
模式檔案)。
例外狀況
RecordNumber
< 1 且不等於 -1。
檔案模式無效。
範例
此範例會使用函 FilePut
式將數據寫入檔案。 結構的 Person
五筆記錄會寫入檔案。
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
備註
FilePut
只有在和 Binary
模式中Random
才有效。
使用 FilePut
寫入的資料,通常會透過使用 FileGet
從檔案讀取。
檔案中的第一筆記錄或位元組位於位置 1、第二筆記錄或位元組位於位置 2,依此類故。 如果您省略 RecordNumber
,則最後一筆或FilePut
函式所指向的下一筆記錄或位元組FileGet
會寫入最後一個Seek
函式。
自變數可控制函 StringIsFixedLength
式將字串解譯為可變或固定長度。 FilePut
當自變數為 True
時,不會寫入長度描述元。 如果您搭配 FilePut
使用 StringIsFixedLength
= True
,則必須使用 FileGet
執行相同的動作,而且您必須確定字串已初始化為預期的長度。
隨機模式
針對以 Random
模式開啟的檔案,適用下列規則:
如果寫入的數據長度小於函式子句
FileOpen
中指定的RecordLength
長度,請在FilePut
記錄長度界限上寫入後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的空間會填補檔案緩衝區的現有內容。 由於無法以任何確定性判斷填補數據量,因此通常最好讓記錄長度符合所寫入數據的長度。 如果寫入的數據長度大於函式子句FileOpen
中指定的RecordLength
長度,則會擲回例外狀況。如果寫入的變數是字串,
FilePut
則寫入包含字串長度的雙位元組描述元,然後將進入變數的數據寫入。 因此,函式中FileOpen
子句指定的RecordLength
記錄長度必須至少為兩個大於字元串實際長度的位元組。如果寫入的變數是包含數值類型的物件,
FilePut
請寫入兩個識別VarType
物件的位元組,然後寫入變數。 例如,寫入包含整數的物件時,FilePut
會寫入六個字節:兩個字節,將對象識別為VarType(3)
()Integer
,以及包含數據的四個字節。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少兩個字節大於儲存變數所需的實際位元組數目。如果寫入的變數是包含字串的物件,
FilePut
請寫入識別 物件的兩個字節描述元VarType(8)
、指出字元串長度的雙位元組描述元,然後寫入字串數據。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少為四個大於字串實際長度的位元組。 如果您想要在沒有描述元的情況下放置字串,您應該傳遞True
至StringIsFixedLength
參數,而您讀取的字串應該是正確的長度。如果寫入的變數是陣列,您可以選擇是否要為數位的大小和維度撰寫描述元。 Visual Basic 6.0 和舊版會寫入動態陣列的檔案描述元,但不會寫入固定大小的陣列。 Visual Basic 2005 預設不會撰寫描述元。 若要寫入描述元,請將
ArrayIsDynamic
參數設定為True
。 撰寫陣列時,您必須符合數位將讀取的方式;如果使用描述元來讀取,則必須撰寫描述元。 描述項會指定陣列的排名、大小,以及每個排名的下限。 其長度等於 2 加上維度數目的 8 倍: (2 + 8 * NumberOfDimensions) 。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於寫入陣列數據和陣列描述元所需的所有位元組總和。 例如,當陣列寫入磁碟時,下列陣列宣告需要 218 個字節。Dim MyArray(4, 9) As Integer
如果寫入的變數是其他類型的變數, (不是可變長度字串或物件) ,
FilePut
則只會寫入變數數據。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於所寫入數據的長度。FilePut
會寫入結構的專案,就像是個別寫入一樣,不同之處在於元素之間沒有邊框間距。 屬性VBFixedString
可以套用至結構中的字串字段,以指出寫入磁碟時字元串的大小。注意
寫入磁碟時,屬性所指定的字串欄位會截斷超過指定的
VBFixedString
位元組。
二進位模式
對於以 Binary
模式開啟的 Random
檔案,大部分模式規則都會套用,但有一些例外。 在模式中 Binary
開啟的檔案下列規則與模式的規則 Random
不同:
函
RecordLength
式中的FileOpen
子句沒有任何作用。FilePut
連續將所有變數寫入磁碟,也就是記錄之間沒有填補。對於結構中陣列以外的任何陣列,
FilePut
只寫入數據。 未撰寫描述項。FilePut
會寫入非結構元素的可變長度字元串,而不需要雙位元組長度描述元。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 11 個字節寫入檔案編號 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
使用
FilePut
函式寫入檔案時,需要Write
從列舉存取 FileIOPermissionAccess 。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- 在 Visual Basic 中寫入檔案
適用於
FilePut(Int32, Int32, Int64)
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public static void FilePut (int FileNumber, int Value, long RecordNumber = -1);
static member FilePut : int * int * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Integer, Optional RecordNumber As Long = -1)
參數
- FileNumber
- Int32
必要。 任何有效的檔案數目。
- Value
- Int32
必要。 有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
- Int64
選擇性。 寫入開始的資料錄數目 (Random
模式檔案) 或位元組數目 (Binary
模式檔案)。
例外狀況
RecordNumber
< 1 且不等於 -1。
檔案模式無效。
範例
此範例會使用函 FilePut
式將數據寫入檔案。 結構的 Person
五筆記錄會寫入檔案。
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
備註
FilePut
只有在和 Binary
模式中Random
才有效。
使用 FilePut
寫入的資料,通常會透過使用 FileGet
從檔案讀取。
檔案中的第一筆記錄或位元組位於位置 1、第二筆記錄或位元組位於位置 2,依此類移。 如果您省略 RecordNumber
,則會寫入最後 FileGet
一個 或 FilePut
函式之後的下一筆記錄或位元組,或由最後一個 Seek
函式指向 。
自 StringIsFixedLength
變數可控制函式將字串解譯為變數或固定長度。 FilePut
當自變數為 True
時,不會寫入長度描述項。 如果您搭配 FilePut
使用 StringIsFixedLength
= True
,則必須使用 FileGet
執行相同的動作,而且您必須確定字串已初始化為預期的長度。
隨機模式
針對以模式開啟的 Random
檔案,適用下列規則:
如果寫入的數據長度小於 函式 子句
FileOpen
中指定的RecordLength
長度,則FilePut
寫入記錄長度界限的後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的空間會填補檔案緩衝區的現有內容。 由於無法以任何確定性判斷填補數據量,因此最好讓記錄長度符合所寫入數據的長度。 如果寫入的數據長度大於 函式 子句FileOpen
中指定的RecordLength
長度,則會擲回例外狀況。如果寫入的變數是字串,
FilePut
則寫入包含字串長度的雙位元組描述元,然後將進入變數的數據寫入。 因此,函式中FileOpen
子句所RecordLength
指定的記錄長度至少必須大於字串的實際長度兩個字節。如果要寫入的變數是包含數值類型的物件,
FilePut
則寫入兩個字節來識別VarType
物件的 ,然後寫入變數。 例如,當寫入包含整數的物件時,FilePut
會寫入六個字節:兩個字節,將對象識別為VarType(3)
()Integer
,以及包含數據的四個字節。 函式中RecordLength
FileOpen
參數所指定的記錄長度必須至少大於儲存變數所需的實際位元元組數目。如果要寫入的變數是包含字串的物件,
FilePut
則寫入識別物件的兩個字節描述元VarType(8)
、指出字元串長度的雙位元組描述元,然後寫入字元串數據。 函式中RecordLength
FileOpen
參數所指定的記錄長度必須至少四個字節大於字元串的實際長度。 如果您想要放置不含描述元的字串,您應該傳遞True
至StringIsFixedLength
參數,而您讀取的字串應該是正確的長度。如果要寫入的變數是陣列,您可以選擇是否要為數位的大小和維度撰寫描述元。 Visual Basic 6.0 和舊版會撰寫動態陣列的檔案描述元,但不會寫入固定大小的陣列。 Visual Basic 2005 預設為不撰寫描述項。 若要撰寫描述項目,請將
ArrayIsDynamic
參數設定為True
。 寫入陣列時,您必須符合數位的讀取方式;如果要使用描述元讀取,您必須撰寫描述元。 描述項會指定陣列的順位、大小和每個順位的下限。 其長度等於 2 加上維度數目的 8 倍: (2 + 8 * NumberOfDimensions) 。 函式中FileOpen
子句所RecordLength
指定的記錄長度必須大於或等於寫入陣列數據和陣列描述元所需的所有位元組總和。 例如,當陣列寫入磁碟時,下列陣列宣告需要 218 個字節。Dim MyArray(4, 9) As Integer
如果要寫入的變數是其他類型的變數, (不是可變長度字串或物件) ,
FilePut
則只會寫入變數數據。 函式中FileOpen
子句所RecordLength
指定的記錄長度必須大於或等於所寫入數據的長度。FilePut
會寫入 結構的元素,就像個別寫入一樣,不同之處在於元素之間沒有邊框間距。 屬性VBFixedString
可以套用至結構中的字串字段,以指出寫入磁碟時字元串的大小。注意
寫入磁碟時,會截斷具有超過 屬性所指定位元組的
VBFixedString
字串字段,
二進位模式
對於以 Binary
模式開啟的 Random
檔案,大部分的模式規則都會套用,但有一些例外。 在模式中開啟的 Binary
檔案,下列規則與模式的規則 Random
不同:
函
RecordLength
式中的FileOpen
子句沒有任何作用。FilePut
將所有變數連續寫入磁碟,也就是說,不會在記錄之間填補。對於結構中陣列以外的任何陣列,
FilePut
只寫入數據。 未寫入描述項。FilePut
寫入非結構元素且不含雙位元組長度描述元的可變長度字元串。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 11 個字節寫入檔案編號 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
使用
FilePut
函式寫入檔案需要Write
從 FileIOPermissionAccess 列舉存取。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- 在 Visual Basic 中寫入檔案
適用於
FilePut(Int32, Array, Int64, Boolean, Boolean)
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public static void FilePut (int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
static member FilePut : int * Array * int64 * bool * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As Array, Optional RecordNumber As Long = -1, Optional ArrayIsDynamic As Boolean = false, Optional StringIsFixedLength As Boolean = false)
參數
- FileNumber
- Int32
必要。 任何有效的檔案數目。
- Value
- Array
必要。 有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
- Int64
選擇性。 寫入開始的資料錄數目 (Random
模式檔案) 或位元組數目 (Binary
模式檔案)。
- ArrayIsDynamic
- Boolean
選擇性。 只有在編寫陣列時才適用。 指定陣列是否要視為動態 (Dynamic),以及是否要針對描述長度的字串編寫陣列描述元。
- StringIsFixedLength
- Boolean
選擇性。 只有在編寫字串時才適用。 指定是否要針對檔案的字串編寫二位元組字串長度的描述元。 預設為 False
。
例外狀況
RecordNumber
< 1 且不等於 -1。
檔案模式無效。
範例
此範例會使用函 FilePut
式將數據寫入檔案。 結構的 Person
五筆記錄會寫入檔案。
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
備註
FilePut
只有在和 Binary
模式中Random
才有效。
使用 FilePut
寫入的資料,通常會透過使用 FileGet
從檔案讀取。
檔案中的第一筆記錄或位元組位於位置 1、第二筆記錄或位元組位於位置 2,依此類移。 如果您省略 RecordNumber
,則會寫入最後 FileGet
一個 或 FilePut
函式之後的下一筆記錄或位元組,或由最後一個 Seek
函式指向 。
自 StringIsFixedLength
變數可控制函式將字串解譯為變數或固定長度。 FilePut
當自變數為 True
時,不會寫入長度描述項。 如果您搭配 FilePut
使用 StringIsFixedLength
= True
,則必須使用 FileGet
執行相同的動作,而且您必須確定字串已初始化為預期的長度。
隨機模式
針對以模式開啟的 Random
檔案,適用下列規則:
如果寫入的數據長度小於 函式 子句
FileOpen
中指定的RecordLength
長度,則FilePut
寫入記錄長度界限的後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的空間會填補檔案緩衝區的現有內容。 由於無法以任何確定性判斷填補數據量,因此最好讓記錄長度符合所寫入數據的長度。 如果寫入的數據長度大於 函式 子句FileOpen
中指定的RecordLength
長度,則會擲回例外狀況。如果寫入的變數是字串,
FilePut
則寫入包含字串長度的雙位元組描述元,然後將進入變數的數據寫入。 因此,函式中FileOpen
子句所RecordLength
指定的記錄長度至少必須大於字串的實際長度兩個字節。如果要寫入的變數是包含數值類型的物件,
FilePut
則寫入兩個字節來識別VarType
物件的 ,然後寫入變數。 例如,當寫入包含整數的物件時,FilePut
會寫入六個字節:兩個字節,將對象識別為VarType(3)
()Integer
,以及包含數據的四個字節。 函式中RecordLength
FileOpen
參數所指定的記錄長度必須至少大於儲存變數所需的實際位元元組數目。如果要寫入的變數是包含字串的物件,
FilePut
則寫入識別物件的兩個字節描述元VarType(8)
、指出字元串長度的雙位元組描述元,然後寫入字元串數據。 函式中RecordLength
FileOpen
參數所指定的記錄長度必須至少四個字節大於字元串的實際長度。 如果您想要放置不含描述元的字串,您應該傳遞True
至StringIsFixedLength
參數,而您讀取的字串應該是正確的長度。如果要寫入的變數是陣列,您可以選擇是否要為數位的大小和維度撰寫描述元。 Visual Basic 6.0 和舊版會撰寫動態陣列的檔案描述元,但不會寫入固定大小的陣列。 Visual Basic 2005 預設為不撰寫描述項。 若要撰寫描述項目,請將
ArrayIsDynamic
參數設定為True
。 寫入陣列時,您必須符合數位的讀取方式;如果要使用描述元讀取,您必須撰寫描述元。 描述項會指定陣列的順位、大小和每個順位的下限。 其長度等於 2 加上維度數目的 8 倍: (2 + 8 * NumberOfDimensions) 。 函式中FileOpen
子句所RecordLength
指定的記錄長度必須大於或等於寫入陣列數據和陣列描述元所需的所有位元組總和。 例如,當陣列寫入磁碟時,下列陣列宣告需要 218 個字節。Dim MyArray(4, 9) As Integer
如果要寫入的變數是其他類型的變數, (不是可變長度字串或物件) ,
FilePut
則只會寫入變數數據。 函式中FileOpen
子句所RecordLength
指定的記錄長度必須大於或等於所寫入數據的長度。FilePut
會寫入 結構的元素,就像個別寫入一樣,不同之處在於元素之間沒有邊框間距。 屬性VBFixedString
可以套用至結構中的字串字段,以指出寫入磁碟時字元串的大小。注意
寫入磁碟時,會截斷具有超過 屬性所指定位元組的
VBFixedString
字串字段,
二進位模式
對於以 Binary
模式開啟的 Random
檔案,大部分的模式規則都會套用,但有一些例外。 在模式中開啟的 Binary
檔案,下列規則與模式的規則 Random
不同:
函
RecordLength
式中的FileOpen
子句沒有任何作用。FilePut
將所有變數連續寫入磁碟,也就是說,不會在記錄之間填補。對於結構中陣列以外的任何陣列,
FilePut
只寫入數據。 未寫入描述項。FilePut
寫入非結構元素且不含雙位元組長度描述元的可變長度字元串。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 11 個字節寫入檔案編號 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
使用
FilePut
函式寫入檔案需要Write
從 FileIOPermissionAccess 列舉存取。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- 在 Visual Basic 中寫入檔案
適用於
FilePut(Int32, Double, Int64)
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public static void FilePut (int FileNumber, double Value, long RecordNumber = -1);
static member FilePut : int * double * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Double, Optional RecordNumber As Long = -1)
參數
- FileNumber
- Int32
必要。 任何有效的檔案數目。
- Value
- Double
必要。 有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
- Int64
選擇性。 寫入開始的資料錄數目 (Random
模式檔案) 或位元組數目 (Binary
模式檔案)。
例外狀況
RecordNumber
< 1 且不等於 -1。
檔案模式無效。
範例
此範例會使用函 FilePut
式將數據寫入檔案。 結構的 Person
五筆記錄會寫入檔案。
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
備註
FilePut
只有在和 Binary
模式中Random
才有效。
使用 FilePut
寫入的資料,通常會透過使用 FileGet
從檔案讀取。
檔案中的第一筆記錄或位元組位於位置 1、第二筆記錄或位元組位於位置 2,依此類移。 如果您省略 RecordNumber
,則會寫入最後 FileGet
一個 或 FilePut
函式之後的下一筆記錄或位元組,或由最後一個 Seek
函式指向 。
自 StringIsFixedLength
變數可控制函式將字串解譯為變數或固定長度。 FilePut
當自變數為 True
時,不會寫入長度描述項。 如果您搭配 FilePut
使用 StringIsFixedLength
= True
,則必須使用 FileGet
執行相同的動作,而且您必須確定字串已初始化為預期的長度。
隨機模式
針對以模式開啟的 Random
檔案,適用下列規則:
如果寫入的數據長度小於 函式 子句
FileOpen
中指定的RecordLength
長度,則FilePut
寫入記錄長度界限的後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的空間會填補檔案緩衝區的現有內容。 由於無法以任何確定性判斷填補數據量,因此最好讓記錄長度符合所寫入數據的長度。 如果寫入的數據長度大於 函式 子句FileOpen
中指定的RecordLength
長度,則會擲回例外狀況。如果寫入的變數是字串,
FilePut
則寫入包含字串長度的雙位元組描述元,然後將進入變數的數據寫入。 因此,函式中FileOpen
子句所RecordLength
指定的記錄長度至少必須大於字串的實際長度兩個字節。如果要寫入的變數是包含數值類型的物件,
FilePut
則寫入兩個字節來識別VarType
物件的 ,然後寫入變數。 例如,當寫入包含整數的物件時,FilePut
會寫入六個字節:兩個字節,將對象識別為VarType(3)
()Integer
,以及包含數據的四個字節。 函式中RecordLength
FileOpen
參數所指定的記錄長度必須至少大於儲存變數所需的實際位元元組數目。如果要寫入的變數是包含字串的物件,
FilePut
則寫入識別物件的兩個字節描述元VarType(8)
、指出字元串長度的雙位元組描述元,然後寫入字元串數據。 函式中RecordLength
FileOpen
參數所指定的記錄長度必須至少四個字節大於字元串的實際長度。 如果您想要放置不含描述元的字串,您應該傳遞True
至StringIsFixedLength
參數,而您讀取的字串應該是正確的長度。如果要寫入的變數是陣列,您可以選擇是否要為數位的大小和維度撰寫描述元。 Visual Basic 6.0 和舊版會撰寫動態陣列的檔案描述元,但不會寫入固定大小的陣列。 Visual Basic 2005 預設為不撰寫描述項。 若要撰寫描述項目,請將
ArrayIsDynamic
參數設定為True
。 寫入陣列時,您必須符合數位的讀取方式;如果要使用描述元讀取,您必須撰寫描述元。 描述項會指定陣列的順位、大小和每個順位的下限。 其長度等於 2 加上維度數目的 8 倍: (2 + 8 * NumberOfDimensions) 。 函式中FileOpen
子句所RecordLength
指定的記錄長度必須大於或等於寫入陣列數據和陣列描述元所需的所有位元組總和。 例如,當陣列寫入磁碟時,下列陣列宣告需要 218 個字節。Dim MyArray(4, 9) As Integer
如果要寫入的變數是其他類型的變數, (不是可變長度字串或物件) ,
FilePut
則只會寫入變數數據。 函式中FileOpen
子句所RecordLength
指定的記錄長度必須大於或等於所寫入數據的長度。FilePut
會寫入 結構的元素,就像個別寫入一樣,不同之處在於元素之間沒有邊框間距。 屬性VBFixedString
可以套用至結構中的字串字段,以指出寫入磁碟時字元串的大小。注意
寫入磁碟時,會截斷具有超過 屬性所指定位元組的
VBFixedString
字串字段,
二進位模式
對於以 Binary
模式開啟的 Random
檔案,大部分的模式規則都會套用,但有一些例外。 在模式中開啟的 Binary
檔案,下列規則與模式的規則 Random
不同:
函
RecordLength
式中的FileOpen
子句沒有任何作用。FilePut
將所有變數連續寫入磁碟,也就是說,不會在記錄之間填補。對於結構中陣列以外的任何陣列,
FilePut
只寫入數據。 未寫入描述項。FilePut
寫入非結構元素且不含雙位元組長度描述元的可變長度字元串。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 11 個字節寫入檔案編號 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
使用
FilePut
函式寫入檔案需要Write
從 FileIOPermissionAccess 列舉存取。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- 在 Visual Basic 中寫入檔案
適用於
FilePut(Int32, Decimal, Int64)
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public static void FilePut (int FileNumber, decimal Value, long RecordNumber = -1);
static member FilePut : int * decimal * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Decimal, Optional RecordNumber As Long = -1)
參數
- FileNumber
- Int32
必要。 任何有效的檔案數目。
- Value
- Decimal
必要。 有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
- Int64
選擇性。 寫入開始的資料錄數目 (Random
模式檔案) 或位元組數目 (Binary
模式檔案)。
例外狀況
RecordNumber
< 1 且不等於 -1。
檔案模式無效。
範例
此範例會使用函 FilePut
式將數據寫入檔案。 結構的 Person
五筆記錄會寫入檔案。
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
備註
FilePut
只有在和 Binary
模式中Random
才有效。
使用 FilePut
寫入的資料,通常會透過使用 FileGet
從檔案讀取。
檔案中的第一筆記錄或位元組位於位置 1、第二筆記錄或位元組位於位置 2,依此類故。 如果您省略 RecordNumber
,則最後一筆或FilePut
函式所指向的下一筆記錄或位元組FileGet
會寫入最後一個Seek
函式。
自變數可控制函 StringIsFixedLength
式將字串解譯為可變或固定長度。 FilePut
當自變數為 True
時,不會寫入長度描述元。 如果您搭配 FilePut
使用 StringIsFixedLength
= True
,則必須使用 FileGet
執行相同的動作,而且您必須確定字串已初始化為預期的長度。
隨機模式
針對以 Random
模式開啟的檔案,適用下列規則:
如果寫入的數據長度小於函式子句
FileOpen
中指定的RecordLength
長度,請在FilePut
記錄長度界限上寫入後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的空間會填補檔案緩衝區的現有內容。 由於無法以任何確定性判斷填補數據量,因此通常最好讓記錄長度符合所寫入數據的長度。 如果寫入的數據長度大於函式子句FileOpen
中指定的RecordLength
長度,則會擲回例外狀況。如果寫入的變數是字串,
FilePut
則寫入包含字串長度的雙位元組描述元,然後將進入變數的數據寫入。 因此,函式中FileOpen
子句指定的RecordLength
記錄長度必須至少為兩個大於字元串實際長度的位元組。如果寫入的變數是包含數值類型的物件,
FilePut
請寫入兩個識別VarType
物件的位元組,然後寫入變數。 例如,寫入包含整數的物件時,FilePut
會寫入六個字節:兩個字節,將對象識別為VarType(3)
()Integer
,以及包含數據的四個字節。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少兩個字節大於儲存變數所需的實際位元組數目。如果寫入的變數是包含字串的物件,
FilePut
請寫入識別 物件的兩個字節描述元VarType(8)
、指出字元串長度的雙位元組描述元,然後寫入字串數據。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少為四個大於字串實際長度的位元組。 如果您想要在沒有描述元的情況下放置字串,您應該傳遞True
至StringIsFixedLength
參數,而您讀取的字串應該是正確的長度。如果寫入的變數是陣列,您可以選擇是否要為數位的大小和維度撰寫描述元。 Visual Basic 6.0 和舊版會寫入動態陣列的檔案描述元,但不會寫入固定大小的陣列。 Visual Basic 2005 預設不會撰寫描述元。 若要寫入描述元,請將
ArrayIsDynamic
參數設定為True
。 撰寫陣列時,您必須符合數位將讀取的方式;如果使用描述元來讀取,則必須撰寫描述元。 描述項會指定陣列的排名、大小,以及每個排名的下限。 其長度等於 2 加上維度數目的 8 倍: (2 + 8 * NumberOfDimensions) 。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於寫入陣列數據和陣列描述元所需的所有位元組總和。 例如,當陣列寫入磁碟時,下列陣列宣告需要 218 個字節。Dim MyArray(4, 9) As Integer
如果寫入的變數是其他類型的變數, (不是可變長度字串或物件) ,
FilePut
則只會寫入變數數據。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於所寫入數據的長度。FilePut
會寫入結構的專案,就像是個別寫入一樣,不同之處在於元素之間沒有邊框間距。 屬性VBFixedString
可以套用至結構中的字串字段,以指出寫入磁碟時字元串的大小。注意
寫入磁碟時,屬性所指定的字串欄位會截斷超過指定的
VBFixedString
位元組。
二進位模式
對於以 Binary
模式開啟的 Random
檔案,大部分模式規則都會套用,但有一些例外。 在模式中 Binary
開啟的檔案下列規則與模式的規則 Random
不同:
函
RecordLength
式中的FileOpen
子句沒有任何作用。FilePut
連續將所有變數寫入磁碟,也就是記錄之間沒有填補。對於結構中陣列以外的任何陣列,
FilePut
只寫入數據。 未撰寫描述項。FilePut
會寫入非結構元素的可變長度字元串,而不需要雙位元組長度描述元。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 11 個字節寫入檔案編號 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
使用
FilePut
函式寫入檔案時,需要Write
從列舉存取 FileIOPermissionAccess 。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- 在 Visual Basic 中寫入檔案
適用於
FilePut(Int32, DateTime, Int64)
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public static void FilePut (int FileNumber, DateTime Value, long RecordNumber = -1);
static member FilePut : int * DateTime * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As DateTime, Optional RecordNumber As Long = -1)
參數
- FileNumber
- Int32
必要。 任何有效的檔案數目。
- Value
- DateTime
必要。 有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
- Int64
選擇性。 寫入開始的資料錄數目 (Random
模式檔案) 或位元組數目 (Binary
模式檔案)。
例外狀況
RecordNumber
< 1 且不等於 -1。
檔案模式無效。
範例
此範例會使用函 FilePut
式將數據寫入檔案。 結構的 Person
五筆記錄會寫入檔案。
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
備註
FilePut
只有在和 Binary
模式中Random
才有效。
使用 FilePut
寫入的資料,通常會透過使用 FileGet
從檔案讀取。
檔案中的第一筆記錄或位元組位於位置 1、第二筆記錄或位元組位於位置 2,依此類故。 如果您省略 RecordNumber
,則最後一筆或FilePut
函式所指向的下一筆記錄或位元組FileGet
會寫入最後一個Seek
函式。
自變數可控制函 StringIsFixedLength
式將字串解譯為可變或固定長度。 FilePut
當自變數為 True
時,不會寫入長度描述元。 如果您搭配 FilePut
使用 StringIsFixedLength
= True
,則必須使用 FileGet
執行相同的動作,而且您必須確定字串已初始化為預期的長度。
隨機模式
針對以 Random
模式開啟的檔案,適用下列規則:
如果寫入的數據長度小於函式子句
FileOpen
中指定的RecordLength
長度,請在FilePut
記錄長度界限上寫入後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的空間會填補檔案緩衝區的現有內容。 由於無法以任何確定性判斷填補數據量,因此通常最好讓記錄長度符合所寫入數據的長度。 如果寫入的數據長度大於函式子句FileOpen
中指定的RecordLength
長度,則會擲回例外狀況。如果寫入的變數是字串,
FilePut
則寫入包含字串長度的雙位元組描述元,然後將進入變數的數據寫入。 因此,函式中FileOpen
子句指定的RecordLength
記錄長度必須至少為兩個大於字元串實際長度的位元組。如果寫入的變數是包含數值類型的物件,
FilePut
請寫入兩個識別VarType
物件的位元組,然後寫入變數。 例如,寫入包含整數的物件時,FilePut
會寫入六個字節:兩個字節,將對象識別為VarType(3)
()Integer
,以及包含數據的四個字節。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少兩個字節大於儲存變數所需的實際位元組數目。如果寫入的變數是包含字串的物件,
FilePut
請寫入識別 物件的兩個字節描述元VarType(8)
、指出字元串長度的雙位元組描述元,然後寫入字串數據。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少為四個大於字串實際長度的位元組。 如果您想要在沒有描述元的情況下放置字串,您應該傳遞True
至StringIsFixedLength
參數,而您讀取的字串應該是正確的長度。如果寫入的變數是陣列,您可以選擇是否要為數位的大小和維度撰寫描述元。 Visual Basic 6.0 和舊版會寫入動態陣列的檔案描述元,但不會寫入固定大小的陣列。 Visual Basic 2005 預設不會撰寫描述元。 若要寫入描述元,請將
ArrayIsDynamic
參數設定為True
。 撰寫陣列時,您必須符合數位將讀取的方式;如果使用描述元來讀取,則必須撰寫描述元。 描述項會指定陣列的排名、大小,以及每個排名的下限。 其長度等於 2 加上維度數目的 8 倍: (2 + 8 * NumberOfDimensions) 。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於寫入陣列數據和陣列描述元所需的所有位元組總和。 例如,當陣列寫入磁碟時,下列陣列宣告需要 218 個字節。Dim MyArray(4, 9) As Integer
如果寫入的變數是其他類型的變數, (不是可變長度字串或物件) ,
FilePut
則只會寫入變數數據。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於所寫入數據的長度。FilePut
會寫入結構的專案,就像是個別寫入一樣,不同之處在於元素之間沒有邊框間距。 屬性VBFixedString
可以套用至結構中的字串字段,以指出寫入磁碟時字元串的大小。注意
寫入磁碟時,屬性所指定的字串欄位會截斷超過指定的
VBFixedString
位元組。
二進位模式
對於以 Binary
模式開啟的 Random
檔案,大部分的模式規則都會套用,但有一些例外。 在模式中開啟的 Binary
檔案,下列規則與模式的規則 Random
不同:
函
RecordLength
式中的FileOpen
子句沒有任何作用。FilePut
將所有變數連續寫入磁碟,也就是說,不會在記錄之間填補。對於結構中陣列以外的任何陣列,
FilePut
只寫入數據。 未寫入描述項。FilePut
寫入非結構元素且不含雙位元組長度描述元的可變長度字元串。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 11 個字節寫入檔案編號 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
使用
FilePut
函式寫入檔案需要Write
從 FileIOPermissionAccess 列舉存取。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- 在 Visual Basic 中寫入檔案
適用於
FilePut(Int32, Char, Int64)
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public static void FilePut (int FileNumber, char Value, long RecordNumber = -1);
static member FilePut : int * char * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Char, Optional RecordNumber As Long = -1)
參數
- FileNumber
- Int32
必要。 任何有效的檔案數目。
- Value
- Char
必要。 有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
- Int64
選擇性。 寫入開始的資料錄數目 (Random
模式檔案) 或位元組數目 (Binary
模式檔案)。
例外狀況
RecordNumber
< 1 且不等於 -1。
檔案模式無效。
範例
此範例會使用函 FilePut
式將數據寫入檔案。 結構的 Person
五筆記錄會寫入檔案。
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
備註
FilePut
只有在和 Binary
模式中Random
才有效。
使用 FilePut
寫入的資料,通常會透過使用 FileGet
從檔案讀取。
檔案中的第一筆記錄或位元組位於位置 1、第二筆記錄或位元組位於位置 2,依此類移。 如果您省略 RecordNumber
,則會寫入最後 FileGet
一個 或 FilePut
函式之後的下一筆記錄或位元組,或由最後一個 Seek
函式指向 。
自 StringIsFixedLength
變數可控制函式將字串解譯為變數或固定長度。 FilePut
當自變數為 True
時,不會寫入長度描述項。 如果您搭配 FilePut
使用 StringIsFixedLength
= True
,則必須使用 FileGet
執行相同的動作,而且您必須確定字串已初始化為預期的長度。
隨機模式
針對以模式開啟的 Random
檔案,適用下列規則:
如果寫入的數據長度小於 函式 子句
FileOpen
中指定的RecordLength
長度,則FilePut
寫入記錄長度界限的後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的空間會填補檔案緩衝區的現有內容。 由於無法以任何確定性判斷填補數據量,因此最好讓記錄長度符合所寫入數據的長度。 如果寫入的數據長度大於 函式 子句FileOpen
中指定的RecordLength
長度,則會擲回例外狀況。如果寫入的變數是字串,
FilePut
則寫入包含字串長度的雙位元組描述元,然後將進入變數的數據寫入。 因此,函式中FileOpen
子句所RecordLength
指定的記錄長度至少必須大於字串的實際長度兩個字節。如果要寫入的變數是包含數值類型的物件,
FilePut
則寫入兩個字節來識別VarType
物件的 ,然後寫入變數。 例如,當寫入包含整數的物件時,FilePut
會寫入六個字節:兩個字節,將對象識別為VarType(3)
()Integer
,以及包含數據的四個字節。 函式中RecordLength
FileOpen
參數所指定的記錄長度必須至少大於儲存變數所需的實際位元元組數目。如果要寫入的變數是包含字串的物件,
FilePut
則寫入識別物件的兩個字節描述元VarType(8)
、指出字元串長度的雙位元組描述元,然後寫入字元串數據。 函式中RecordLength
FileOpen
參數所指定的記錄長度必須至少四個字節大於字元串的實際長度。 如果您想要放置不含描述元的字串,您應該傳遞True
至StringIsFixedLength
參數,而您讀取的字串應該是正確的長度。如果要寫入的變數是陣列,您可以選擇是否要為數位的大小和維度撰寫描述元。 Visual Basic 6.0 和舊版會撰寫動態陣列的檔案描述元,但不會寫入固定大小的陣列。 Visual Basic 2005 預設為不撰寫描述項。 若要撰寫描述項目,請將
ArrayIsDynamic
參數設定為True
。 寫入陣列時,您必須符合數位的讀取方式;如果要使用描述元讀取,您必須撰寫描述元。 描述項會指定陣列的順位、大小和每個順位的下限。 其長度等於 2 加上維度數目的 8 倍: (2 + 8 * NumberOfDimensions) 。 函式中FileOpen
子句所RecordLength
指定的記錄長度必須大於或等於寫入陣列數據和陣列描述元所需的所有位元組總和。 例如,當陣列寫入磁碟時,下列陣列宣告需要 218 個字節。Dim MyArray(4, 9) As Integer
如果要寫入的變數是其他類型的變數, (不是可變長度字串或物件) ,
FilePut
則只會寫入變數數據。 函式中FileOpen
子句所RecordLength
指定的記錄長度必須大於或等於所寫入數據的長度。FilePut
會寫入 結構的元素,就像個別寫入一樣,不同之處在於元素之間沒有邊框間距。 屬性VBFixedString
可以套用至結構中的字串字段,以指出寫入磁碟時字元串的大小。注意
寫入磁碟時,會截斷具有超過 屬性所指定位元組的
VBFixedString
字串字段,
二進位模式
對於以 Binary
模式開啟的 Random
檔案,大部分的模式規則都會套用,但有一些例外。 在模式中開啟的 Binary
檔案,下列規則與模式的規則 Random
不同:
函
RecordLength
式中的FileOpen
子句沒有任何作用。FilePut
將所有變數連續寫入磁碟,也就是說,不會在記錄之間填補。對於結構中陣列以外的任何陣列,
FilePut
只寫入數據。 未寫入描述項。FilePut
寫入非結構元素且不含雙位元組長度描述元的可變長度字元串。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 11 個字節寫入檔案編號 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
使用
FilePut
函式寫入檔案需要Write
從 FileIOPermissionAccess 列舉存取。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- 在 Visual Basic 中寫入檔案
適用於
FilePut(Int32, Byte, Int64)
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public static void FilePut (int FileNumber, byte Value, long RecordNumber = -1);
static member FilePut : int * byte * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Byte, Optional RecordNumber As Long = -1)
參數
- FileNumber
- Int32
必要。 任何有效的檔案數目。
- Value
- Byte
必要。 有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
- Int64
選擇性。 寫入開始的資料錄數目 (Random
模式檔案) 或位元組數目 (Binary
模式檔案)。
例外狀況
RecordNumber
< 1 且不等於 -1。
檔案模式無效。
範例
此範例會使用函 FilePut
式將數據寫入檔案。 結構的 Person
五筆記錄會寫入檔案。
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
備註
FilePut
只有在和 Binary
模式中Random
才有效。
使用 FilePut
寫入的資料,通常會透過使用 FileGet
從檔案讀取。
檔案中的第一筆記錄或位元組位於位置 1、第二筆記錄或位元組位於位置 2,依此類移。 如果您省略 RecordNumber
,則會寫入最後 FileGet
一個 或 FilePut
函式之後的下一筆記錄或位元組,或由最後一個 Seek
函式指向 。
自 StringIsFixedLength
變數可控制函式將字串解譯為變數或固定長度。 FilePut
當自變數為 True
時,不會寫入長度描述項。 如果您搭配 FilePut
使用 StringIsFixedLength
= True
,則必須使用 FileGet
執行相同的動作,而且您必須確定字串已初始化為預期的長度。
隨機模式
針對以模式開啟的 Random
檔案,適用下列規則:
如果寫入的數據長度小於 函式 子句
FileOpen
中指定的RecordLength
長度,則FilePut
寫入記錄長度界限的後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的空間會填補檔案緩衝區的現有內容。 由於無法以任何確定性判斷填補數據量,因此最好讓記錄長度符合所寫入數據的長度。 如果寫入的數據長度大於 函式 子句FileOpen
中指定的RecordLength
長度,則會擲回例外狀況。如果寫入的變數是字串,
FilePut
則寫入包含字串長度的雙位元組描述元,然後將進入變數的數據寫入。 因此,函式中FileOpen
子句所RecordLength
指定的記錄長度至少必須大於字串的實際長度兩個字節。如果寫入的變數是包含數值類型的物件,
FilePut
請寫入兩個識別VarType
物件的位元組,然後寫入變數。 例如,寫入包含整數的物件時,FilePut
會寫入六個字節:兩個字節,將對象識別為VarType(3)
()Integer
,以及包含數據的四個字節。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少兩個字節大於儲存變數所需的實際位元組數目。如果寫入的變數是包含字串的物件,
FilePut
請寫入識別 物件的兩個字節描述元VarType(8)
、指出字元串長度的雙位元組描述元,然後寫入字串數據。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少為四個大於字串實際長度的位元組。 如果您想要在沒有描述元的情況下放置字串,您應該傳遞True
至StringIsFixedLength
參數,而您讀取的字串應該是正確的長度。如果寫入的變數是陣列,您可以選擇是否要為數位的大小和維度撰寫描述元。 Visual Basic 6.0 和舊版會寫入動態陣列的檔案描述元,但不會寫入固定大小的陣列。 Visual Basic 2005 預設不會撰寫描述元。 若要寫入描述元,請將
ArrayIsDynamic
參數設定為True
。 撰寫陣列時,您必須符合數位將讀取的方式;如果使用描述元來讀取,則必須撰寫描述元。 描述項會指定陣列的排名、大小,以及每個排名的下限。 其長度等於 2 加上維度數目的 8 倍: (2 + 8 * NumberOfDimensions) 。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於寫入陣列數據和陣列描述元所需的所有位元組總和。 例如,當陣列寫入磁碟時,下列陣列宣告需要 218 個字節。Dim MyArray(4, 9) As Integer
如果寫入的變數是其他類型的變數, (不是可變長度字串或物件) ,
FilePut
則只會寫入變數數據。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於所寫入數據的長度。FilePut
會寫入結構的專案,就像是個別寫入一樣,不同之處在於元素之間沒有邊框間距。 屬性VBFixedString
可以套用至結構中的字串字段,以指出寫入磁碟時字元串的大小。注意
寫入磁碟時,屬性所指定的字串欄位會截斷超過指定的
VBFixedString
位元組。
二進位模式
對於以 Binary
模式開啟的 Random
檔案,大部分模式規則都會套用,但有一些例外。 在模式中 Binary
開啟的檔案下列規則與模式的規則 Random
不同:
函
RecordLength
式中的FileOpen
子句沒有任何作用。FilePut
連續將所有變數寫入磁碟,也就是記錄之間沒有填補。對於結構中陣列以外的任何陣列,
FilePut
只寫入數據。 未撰寫描述項。FilePut
會寫入非結構元素的可變長度字元串,而不需要雙位元組長度描述元。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 11 個字節寫入檔案編號 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
使用
FilePut
函式寫入檔案時,需要Write
從列舉存取 FileIOPermissionAccess 。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- 在 Visual Basic 中寫入檔案
適用於
FilePut(Int32, Boolean, Int64)
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public static void FilePut (int FileNumber, bool Value, long RecordNumber = -1);
static member FilePut : int * bool * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Boolean, Optional RecordNumber As Long = -1)
參數
- FileNumber
- Int32
必要。 任何有效的檔案數目。
- Value
- Boolean
必要。 有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
- Int64
選擇性。 寫入開始的資料錄數目 (Random
模式檔案) 或位元組數目 (Binary
模式檔案)。
例外狀況
RecordNumber
< 1 且不等於 -1。
檔案模式無效。
範例
此範例會使用函 FilePut
式將數據寫入檔案。 結構的 Person
五筆記錄會寫入檔案。
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
備註
FilePut
只有在和 Binary
模式中Random
才有效。
使用 FilePut
寫入的資料,通常會透過使用 FileGet
從檔案讀取。
檔案中的第一筆記錄或位元組位於位置 1、第二筆記錄或位元組位於位置 2,依此類故。 如果您省略 RecordNumber
,則最後一筆或FilePut
函式所指向的下一筆記錄或位元組FileGet
會寫入最後一個Seek
函式。
自變數可控制函 StringIsFixedLength
式將字串解譯為可變或固定長度。 FilePut
當自變數為 True
時,不會寫入長度描述元。 如果您搭配 FilePut
使用 StringIsFixedLength
= True
,則必須使用 FileGet
執行相同的動作,而且您必須確定字串已初始化為預期的長度。
隨機模式
針對以 Random
模式開啟的檔案,適用下列規則:
如果寫入的數據長度小於函式子句
FileOpen
中指定的RecordLength
長度,請在FilePut
記錄長度界限上寫入後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的空間會填補檔案緩衝區的現有內容。 由於無法以任何確定性判斷填補數據量,因此通常最好讓記錄長度符合所寫入數據的長度。 如果寫入的數據長度大於函式子句FileOpen
中指定的RecordLength
長度,則會擲回例外狀況。如果寫入的變數是字串,
FilePut
則寫入包含字串長度的雙位元組描述元,然後將進入變數的數據寫入。 因此,函式中FileOpen
子句指定的RecordLength
記錄長度必須至少為兩個大於字元串實際長度的位元組。如果寫入的變數是包含數值類型的物件,
FilePut
請寫入兩個識別VarType
物件的位元組,然後寫入變數。 例如,寫入包含整數的物件時,FilePut
會寫入六個字節:兩個字節,將對象識別為VarType(3)
()Integer
,以及包含數據的四個字節。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少兩個字節大於儲存變數所需的實際位元組數目。如果寫入的變數是包含字串的物件,
FilePut
請寫入識別 物件的兩個字節描述元VarType(8)
、指出字元串長度的雙位元組描述元,然後寫入字串數據。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少為四個大於字串實際長度的位元組。 如果您想要在沒有描述元的情況下放置字串,您應該傳遞True
至StringIsFixedLength
參數,而您讀取的字串應該是正確的長度。如果寫入的變數是陣列,您可以選擇是否要為數位的大小和維度撰寫描述元。 Visual Basic 6.0 和舊版會寫入動態陣列的檔案描述元,但不會寫入固定大小的陣列。 Visual Basic 2005 預設不會撰寫描述元。 若要寫入描述元,請將
ArrayIsDynamic
參數設定為True
。 撰寫陣列時,您必須符合數位將讀取的方式;如果使用描述元來讀取,則必須撰寫描述元。 描述項會指定陣列的排名、大小,以及每個排名的下限。 其長度等於 2 加上維度數目的 8 倍: (2 + 8 * NumberOfDimensions) 。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於寫入陣列數據和陣列描述元所需的所有位元組總和。 例如,當陣列寫入磁碟時,下列陣列宣告需要 218 個字節。Dim MyArray(4, 9) As Integer
如果寫入的變數是其他類型的變數, (不是可變長度字串或物件) ,
FilePut
則只會寫入變數數據。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於所寫入數據的長度。FilePut
會寫入結構的專案,就像是個別寫入一樣,不同之處在於元素之間沒有邊框間距。 屬性VBFixedString
可以套用至結構中的字串字段,以指出寫入磁碟時字元串的大小。注意
寫入磁碟時,屬性所指定的字串欄位會截斷超過指定的
VBFixedString
位元組。
二進位模式
對於以 Binary
模式開啟的 Random
檔案,大部分模式規則都會套用,但有一些例外。 在模式中 Binary
開啟的檔案下列規則與模式的規則 Random
不同:
函
RecordLength
式中的FileOpen
子句沒有任何作用。FilePut
連續將所有變數寫入磁碟,也就是記錄之間沒有填補。對於結構中陣列以外的任何陣列,
FilePut
只寫入數據。 未撰寫描述項。FilePut
會寫入非結構元素的可變長度字元串,而不需要雙位元組長度描述元。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 11 個字節寫入檔案編號 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
使用
FilePut
函式寫入檔案時,需要Write
從列舉存取 FileIOPermissionAccess 。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- 在 Visual Basic 中寫入檔案
適用於
FilePut(Int32, Int16, Int64)
將變數資料寫入磁碟檔案。 相較於 FilePut
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public static void FilePut (int FileNumber, short Value, long RecordNumber = -1);
static member FilePut : int * int16 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Short, Optional RecordNumber As Long = -1)
參數
- FileNumber
- Int32
必要。 任何有效的檔案數目。
- Value
- Int16
必要。 有效的變數名稱,該名稱包含已寫入磁碟的資料。
- RecordNumber
- Int64
選擇性。 寫入開始的資料錄數目 (Random
模式檔案) 或位元組數目 (Binary
模式檔案)。
例外狀況
RecordNumber
< 1 且不等於 -1。
檔案模式無效。
範例
此範例會使用函 FilePut
式將數據寫入檔案。 結構的 Person
五筆記錄會寫入檔案。
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
備註
FilePut
只有在和 Binary
模式中Random
才有效。
使用 FilePut
寫入的資料,通常會透過使用 FileGet
從檔案讀取。
檔案中的第一筆記錄或位元組位於位置 1、第二筆記錄或位元組位於位置 2,依此類故。 如果您省略 RecordNumber
,則最後一筆或FilePut
函式所指向的下一筆記錄或位元組FileGet
會寫入最後一個Seek
函式。
自變數可控制函 StringIsFixedLength
式將字串解譯為可變或固定長度。 FilePut
當自變數為 True
時,不會寫入長度描述元。 如果您搭配 FilePut
使用 StringIsFixedLength
= True
,則必須使用 FileGet
執行相同的動作,而且您必須確定字串已初始化為預期的長度。
隨機模式
針對以 Random
模式開啟的檔案,適用下列規則:
如果寫入的數據長度小於函式子句
FileOpen
中指定的RecordLength
長度,請在FilePut
記錄長度界限上寫入後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的空間會填補檔案緩衝區的現有內容。 由於無法以任何確定性判斷填補數據量,因此通常最好讓記錄長度符合所寫入數據的長度。 如果寫入的數據長度大於函式子句FileOpen
中指定的RecordLength
長度,則會擲回例外狀況。如果寫入的變數是字串,
FilePut
則寫入包含字串長度的雙位元組描述元,然後將進入變數的數據寫入。 因此,函式中FileOpen
子句指定的RecordLength
記錄長度必須至少為兩個大於字元串實際長度的位元組。如果寫入的變數是包含數值類型的物件,
FilePut
請寫入兩個識別VarType
物件的位元組,然後寫入變數。 例如,寫入包含整數的物件時,FilePut
會寫入六個字節:兩個字節,將對象識別為VarType(3)
()Integer
,以及包含數據的四個字節。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少兩個字節大於儲存變數所需的實際位元組數目。如果寫入的變數是包含字串的物件,
FilePut
請寫入識別 物件的兩個字節描述元VarType(8)
、指出字元串長度的雙位元組描述元,然後寫入字串數據。 函式中FileOpen
參數指定的RecordLength
記錄長度必須至少為四個大於字串實際長度的位元組。 如果您想要在沒有描述元的情況下放置字串,您應該傳遞True
至StringIsFixedLength
參數,而您讀取的字串應該是正確的長度。如果寫入的變數是陣列,您可以選擇是否要為數位的大小和維度撰寫描述元。 Visual Basic 6.0 和舊版會寫入動態陣列的檔案描述元,但不會寫入固定大小的陣列。 Visual Basic 2005 預設不會撰寫描述元。 若要寫入描述元,請將
ArrayIsDynamic
參數設定為True
。 撰寫陣列時,您必須符合數位將讀取的方式;如果使用描述元來讀取,則必須撰寫描述元。 描述項會指定陣列的排名、大小,以及每個排名的下限。 其長度等於 2 加上維度數目的 8 倍: (2 + 8 * NumberOfDimensions) 。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於寫入陣列數據和陣列描述元所需的所有位元組總和。 例如,當陣列寫入磁碟時,下列陣列宣告需要 218 個字節。Dim MyArray(4, 9) As Integer
如果寫入的變數是其他類型的變數, (不是可變長度字串或物件) ,
FilePut
則只會寫入變數數據。 函式中FileOpen
子句指定的RecordLength
記錄長度必須大於或等於所寫入數據的長度。FilePut
會寫入結構的專案,就像是個別寫入一樣,不同之處在於元素之間沒有邊框間距。 屬性VBFixedString
可以套用至結構中的字串字段,以指出寫入磁碟時字元串的大小。注意
寫入磁碟時,屬性所指定的字串欄位會截斷超過指定的
VBFixedString
位元組。
二進位模式
對於以 Binary
模式開啟的 Random
檔案,大部分模式規則都會套用,但有一些例外。 在模式中 Binary
開啟的檔案下列規則與模式的規則 Random
不同:
函
RecordLength
式中的FileOpen
子句沒有任何作用。FilePut
連續將所有變數寫入磁碟,也就是記錄之間沒有填補。對於結構中陣列以外的任何陣列,
FilePut
只寫入數據。 未撰寫描述項。FilePut
會寫入非結構元素的可變長度字元串,而不需要雙位元組長度描述元。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 11 個字節寫入檔案編號 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
使用
FilePut
函式寫入檔案時,需要Write
從列舉存取 FileIOPermissionAccess 。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- 在 Visual Basic 中寫入檔案