FileSystem.FilePut 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 F 更多資訊請參見 FileSystem。
多載
| 名稱 | Description |
|---|---|
| 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)
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 如需詳細資訊,請參閱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
Optional. 記錄號(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 僅 Random 在 和 Binary 模式中有效。
以 寫入 FilePut 的資料通常會從 FileGet檔案中讀取。
檔案中的第一個記錄或位元組位於位置 1,第二個記錄或位元組位於位置 2,依此類推。 若省略RecordNumber,則在最後FileGetFilePut一個或函式後的記錄或位元組,或由最後Seek一個函式指向的,則會寫入。
參數 StringIsFixedLength 控制函式是將字串解釋為可變長度還是固定長度。
FilePut 當參數為 True時,並不會寫出長度描述子。 如果你用 StringIsFixedLength = True , FilePut你也要用同樣的方式, FileGet並且要確保字串初始化到預期長度。
隨機模式
對於以 Random 模式開啟的檔案,適用以下規則:
若所寫資料長度小於函式子句
FileOpen中指定的RecordLength長度,則FilePut會在記錄長度邊界寫入後續記錄。 一個記錄結束與下一個記錄起點之間的空間會填充檔案緩衝區的現有內容。 由於填充資料的數量無法確定,通常讓記錄長度與寫入資料長度相符是個好主意。 若所寫資料長度超過函式子句FileOpen所RecordLength規定的長度,則會拋出例外。如果被寫入的變數是字串,則
FilePut會寫一個包含字串長度的兩位元組描述符,然後寫入變數的資料。 因此,函式中子句FileOpen指定的RecordLength記錄長度必須比字串的實際長度至少長兩個位元組。如果被寫入的變數是一個包含數值型別的物件,則
FilePut會寫入兩個位元組來識別該物件的 ,VarType然後寫入變數。 例如,當寫入包含整數的物件時,FilePut會寫入六個位元組:兩個位元組將該物件識別為VarType(3)(Integer),以及四個位元組包含資料。 函式中參數FileOpen指定的RecordLength記錄長度必須比實際儲存變數所需的位元組數至少多兩個位元組。若被寫入變數為包含字串的物件,則
FilePut會寫入一個兩位元組的描述符來識別該物件的 ,VarType(8)一個兩位元組的描述符表示字串的長度,然後寫入字串資料。 函式參數指定的RecordLengthFileOpen記錄長度必須至少比字串實際長度長四個位元組。 如果你想放一個沒有描述符的字串,你應該把參數傳給TrueStringIsFixedLength參數,而你讀入的字串長度應該是正確的。如果要寫入的變數是陣列,你可以選擇是否為陣列的大小和維度寫描述符。 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)
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 如需詳細資訊,請參閱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
Optional. 記錄號(Random 模式檔案)或位元組號(Binary 模式檔案),即寫入開始的起點。
- StringIsFixedLength
- Boolean
Optional. 只適用於寫字串時。 指定是否要為該字串寫入檔案的兩位元組字串長度描述符。 預設值為 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 僅 Random 在 和 Binary 模式中有效。
以 寫入 FilePut 的資料通常會從 FileGet檔案中讀取。
檔案中的第一個記錄或位元組位於位置 1,第二個記錄或位元組位於位置 2,依此類推。 若省略RecordNumber,則在最後FileGetFilePut一個或函式後的記錄或位元組,或由最後Seek一個函式指向的,則會寫入。
參數 StringIsFixedLength 控制函式是將字串解釋為可變長度還是固定長度。
FilePut 當參數為 True時,並不會寫出長度描述子。 如果你用 StringIsFixedLength = True , FilePut你也要用同樣的方式, FileGet並且要確保字串初始化到預期長度。
隨機模式
對於以 Random 模式開啟的檔案,適用以下規則:
若所寫資料長度小於函式子句
FileOpen中指定的RecordLength長度,則FilePut會在記錄長度邊界寫入後續記錄。 一個記錄結束與下一個記錄起點之間的空間會填充檔案緩衝區的現有內容。 由於填充資料的數量無法確定,通常讓記錄長度與寫入資料長度相符是個好主意。 若所寫資料長度超過函式子句FileOpen所RecordLength規定的長度,則會拋出例外。如果被寫入的變數是字串,則
FilePut會寫一個包含字串長度的兩位元組描述符,然後寫入變數的資料。 因此,函式中子句FileOpen指定的RecordLength記錄長度必須比字串的實際長度至少長兩個位元組。如果被寫入的變數是一個包含數值型別的物件,則
FilePut會寫入兩個位元組來識別該物件的 ,VarType然後寫入變數。 例如,當寫入包含整數的物件時,FilePut會寫入六個位元組:兩個位元組將該物件識別為VarType(3)(Integer),以及四個位元組包含資料。 函式中參數FileOpen指定的RecordLength記錄長度必須比實際儲存變數所需的位元組數至少多兩個位元組。若被寫入變數為包含字串的物件,則
FilePut會寫入一個兩位元組的描述符來識別該物件的 ,VarType(8)一個兩位元組的描述符表示字串的長度,然後寫入字串資料。 函式參數指定的RecordLengthFileOpen記錄長度必須至少比字串實際長度長四個位元組。 如果你想放一個沒有描述符的字串,你應該把參數傳給TrueStringIsFixedLength參數,而你讀入的字串長度應該是正確的。如果要寫入的變數是陣列,你可以選擇是否為陣列的大小和維度寫描述符。 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)
警告
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
警告
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
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 如需詳細資訊,請參閱FileSystem。
[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("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("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
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)
參數
- FileNumber
- Object
必須的。 任何有效的檔案號碼。
- Value
- Object
必須的。 有效的變數名稱,包含寫入磁碟的資料。
- RecordNumber
- Object
Optional. 記錄號(Random 模式檔案)或位元組號(Binary 模式檔案),即寫入開始的起點。
- 屬性
例外狀況
RecordNumber
< 1,且不等於-1。
檔案模式無效。
另請參閱
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
寫入 Visual Basic
適用於
FilePut(Int32, ValueType, Int64)
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 如需詳細資訊,請參閱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
Optional. 記錄號(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 僅 Random 在 和 Binary 模式中有效。
以 寫入 FilePut 的資料通常會從 FileGet檔案中讀取。
檔案中的第一個記錄或位元組位於位置 1,第二個記錄或位元組位於位置 2,依此類推。 若省略RecordNumber,則在最後FileGetFilePut一個或函式後的記錄或位元組,或由最後Seek一個函式指向的,則會寫入。
參數 StringIsFixedLength 控制函式是將字串解釋為可變長度還是固定長度。
FilePut 當參數為 True時,並不會寫出長度描述子。 如果你用 StringIsFixedLength = True , FilePut你也要用同樣的方式, FileGet並且要確保字串初始化到預期長度。
隨機模式
對於以 Random 模式開啟的檔案,適用以下規則:
若所寫資料長度小於函式子句
FileOpen中指定的RecordLength長度,則FilePut會在記錄長度邊界寫入後續記錄。 一個記錄結束與下一個記錄起點之間的空間會填充檔案緩衝區的現有內容。 由於填充資料的數量無法確定,通常讓記錄長度與寫入資料長度相符是個好主意。 若所寫資料長度超過函式子句FileOpen所RecordLength規定的長度,則會拋出例外。如果被寫入的變數是字串,則
FilePut會寫一個包含字串長度的兩位元組描述符,然後寫入變數的資料。 因此,函式中子句FileOpen指定的RecordLength記錄長度必須比字串的實際長度至少長兩個位元組。如果被寫入的變數是一個包含數值型別的物件,則
FilePut會寫入兩個位元組來識別該物件的 ,VarType然後寫入變數。 例如,當寫入包含整數的物件時,FilePut會寫入六個位元組:兩個位元組將該物件識別為VarType(3)(Integer),以及四個位元組包含資料。 函式中參數FileOpen指定的RecordLength記錄長度必須比實際儲存變數所需的位元組數至少多兩個位元組。若被寫入變數為包含字串的物件,則
FilePut會寫入一個兩位元組的描述符來識別該物件的 ,VarType(8)一個兩位元組的描述符表示字串的長度,然後寫入字串資料。 函式參數指定的RecordLengthFileOpen記錄長度必須至少比字串實際長度長四個位元組。 如果你想放一個沒有描述符的字串,你應該把參數傳給TrueStringIsFixedLength參數,而你讀入的字串長度應該是正確的。如果要寫入的變數是陣列,你可以選擇是否為陣列的大小和維度寫描述符。 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)
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 如需詳細資訊,請參閱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
Optional. 記錄號(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 僅 Random 在 和 Binary 模式中有效。
以 寫入 FilePut 的資料通常會從 FileGet檔案中讀取。
檔案中的第一個記錄或位元組位於位置 1,第二個記錄或位元組位於位置 2,依此類推。 若省略RecordNumber,則在最後FileGetFilePut一個或函式後的記錄或位元組,或由最後Seek一個函式指向的,則會寫入。
參數 StringIsFixedLength 控制函式是將字串解釋為可變長度還是固定長度。
FilePut 當參數為 True時,並不會寫出長度描述子。 如果你用 StringIsFixedLength = True , FilePut你也要用同樣的方式, FileGet並且要確保字串初始化到預期長度。
隨機模式
對於以 Random 模式開啟的檔案,適用以下規則:
若所寫資料長度小於函式子句
FileOpen中指定的RecordLength長度,則FilePut會在記錄長度邊界寫入後續記錄。 一個記錄結束與下一個記錄起點之間的空間會填充檔案緩衝區的現有內容。 由於填充資料的數量無法確定,通常讓記錄長度與寫入資料長度相符是個好主意。 若所寫資料長度超過函式子句FileOpen所RecordLength規定的長度,則會拋出例外。如果被寫入的變數是字串,則
FilePut會寫一個包含字串長度的兩位元組描述符,然後寫入變數的資料。 因此,函式中子句FileOpen指定的RecordLength記錄長度必須比字串的實際長度至少長兩個位元組。如果被寫入的變數是一個包含數值型別的物件,則
FilePut會寫入兩個位元組來識別該物件的 ,VarType然後寫入變數。 例如,當寫入包含整數的物件時,FilePut會寫入六個位元組:兩個位元組將該物件識別為VarType(3)(Integer),以及四個位元組包含資料。 函式中參數FileOpen指定的RecordLength記錄長度必須比實際儲存變數所需的位元組數至少多兩個位元組。若被寫入變數為包含字串的物件,則
FilePut會寫入一個兩位元組的描述符來識別該物件的 ,VarType(8)一個兩位元組的描述符表示字串的長度,然後寫入字串資料。 函式參數指定的RecordLengthFileOpen記錄長度必須至少比字串實際長度長四個位元組。 如果你想放一個沒有描述符的字串,你應該把參數傳給TrueStringIsFixedLength參數,而你讀入的字串長度應該是正確的。如果要寫入的變數是陣列,你可以選擇是否為陣列的大小和維度寫描述符。 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)
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 如需詳細資訊,請參閱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
Optional. 記錄號(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 僅 Random 在 和 Binary 模式中有效。
以 寫入 FilePut 的資料通常會從 FileGet檔案中讀取。
檔案中的第一個記錄或位元組位於位置 1,第二個記錄或位元組位於位置 2,依此類推。 若省略RecordNumber,則在最後FileGetFilePut一個或函式後的記錄或位元組,或由最後Seek一個函式指向的,則會寫入。
參數 StringIsFixedLength 控制函式是將字串解釋為可變長度還是固定長度。
FilePut 當參數為 True時,並不會寫出長度描述子。 如果你用 StringIsFixedLength = True , FilePut你也要用同樣的方式, FileGet並且要確保字串初始化到預期長度。
隨機模式
對於以 Random 模式開啟的檔案,適用以下規則:
若所寫資料長度小於函式子句
FileOpen中指定的RecordLength長度,則FilePut會在記錄長度邊界寫入後續記錄。 一個記錄結束與下一個記錄起點之間的空間會填充檔案緩衝區的現有內容。 由於填充資料的數量無法確定,通常讓記錄長度與寫入資料長度相符是個好主意。 若所寫資料長度超過函式子句FileOpen所RecordLength規定的長度,則會拋出例外。如果被寫入的變數是字串,則
FilePut會寫一個包含字串長度的兩位元組描述符,然後寫入變數的資料。 因此,函式中子句FileOpen指定的RecordLength記錄長度必須比字串的實際長度至少長兩個位元組。如果被寫入的變數是一個包含數值型別的物件,則
FilePut會寫入兩個位元組來識別該物件的 ,VarType然後寫入變數。 例如,當寫入包含整數的物件時,FilePut會寫入六個位元組:兩個位元組將該物件識別為VarType(3)(Integer),以及四個位元組包含資料。 函式中參數FileOpen指定的RecordLength記錄長度必須比實際儲存變數所需的位元組數至少多兩個位元組。若被寫入變數為包含字串的物件,則
FilePut會寫入一個兩位元組的描述符來識別該物件的 ,VarType(8)一個兩位元組的描述符表示字串的長度,然後寫入字串資料。 函式參數指定的RecordLengthFileOpen記錄長度必須至少比字串實際長度長四個位元組。 如果你想放一個沒有描述符的字串,你應該把參數傳給TrueStringIsFixedLength參數,而你讀入的字串長度應該是正確的。如果要寫入的變數是陣列,你可以選擇是否為陣列的大小和維度寫描述符。 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)
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 如需詳細資訊,請參閱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
Optional. 記錄號(Random 模式檔案)或位元組號(Binary 模式檔案),即寫入開始的起點。
- ArrayIsDynamic
- Boolean
Optional. 僅適用於撰寫陣列時。 指定陣列是否應被視為動態,以及是否為描述長度的字串撰寫陣列描述符。
- StringIsFixedLength
- Boolean
Optional. 只適用於寫字串時。 指定是否要為該字串寫入檔案的兩位元組字串長度描述符。 預設值為 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 僅 Random 在 和 Binary 模式中有效。
以 寫入 FilePut 的資料通常會從 FileGet檔案中讀取。
檔案中的第一個記錄或位元組位於位置 1,第二個記錄或位元組位於位置 2,依此類推。 若省略RecordNumber,則在最後FileGetFilePut一個或函式後的記錄或位元組,或由最後Seek一個函式指向的,則會寫入。
參數 StringIsFixedLength 控制函式是將字串解釋為可變長度還是固定長度。
FilePut 當參數為 True時,並不會寫出長度描述子。 如果你用 StringIsFixedLength = True , FilePut你也要用同樣的方式, FileGet並且要確保字串初始化到預期長度。
隨機模式
對於以 Random 模式開啟的檔案,適用以下規則:
若所寫資料長度小於函式子句
FileOpen中指定的RecordLength長度,則FilePut會在記錄長度邊界寫入後續記錄。 一個記錄結束與下一個記錄起點之間的空間會填充檔案緩衝區的現有內容。 由於填充資料的數量無法確定,通常讓記錄長度與寫入資料長度相符是個好主意。 若所寫資料長度超過函式子句FileOpen所RecordLength規定的長度,則會拋出例外。如果被寫入的變數是字串,則
FilePut會寫一個包含字串長度的兩位元組描述符,然後寫入變數的資料。 因此,函式中子句FileOpen指定的RecordLength記錄長度必須比字串的實際長度至少長兩個位元組。如果被寫入的變數是一個包含數值型別的物件,則
FilePut會寫入兩個位元組來識別該物件的 ,VarType然後寫入變數。 例如,當寫入包含整數的物件時,FilePut會寫入六個位元組:兩個位元組將該物件識別為VarType(3)(Integer),以及四個位元組包含資料。 函式中參數FileOpen指定的RecordLength記錄長度必須比實際儲存變數所需的位元組數至少多兩個位元組。若被寫入變數為包含字串的物件,則
FilePut會寫入一個兩位元組的描述符來識別該物件的 ,VarType(8)一個兩位元組的描述符表示字串的長度,然後寫入字串資料。 函式參數指定的RecordLengthFileOpen記錄長度必須至少比字串實際長度長四個位元組。 如果你想放一個沒有描述符的字串,你應該把參數傳給TrueStringIsFixedLength參數,而你讀入的字串長度應該是正確的。如果要寫入的變數是陣列,你可以選擇是否為陣列的大小和維度寫描述符。 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)
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 如需詳細資訊,請參閱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
Optional. 記錄號(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 僅 Random 在 和 Binary 模式中有效。
以 寫入 FilePut 的資料通常會從 FileGet檔案中讀取。
檔案中的第一個記錄或位元組位於位置 1,第二個記錄或位元組位於位置 2,依此類推。 若省略RecordNumber,則在最後FileGetFilePut一個或函式後的記錄或位元組,或由最後Seek一個函式指向的,則會寫入。
參數 StringIsFixedLength 控制函式是將字串解釋為可變長度還是固定長度。
FilePut 當參數為 True時,並不會寫出長度描述子。 如果你用 StringIsFixedLength = True , FilePut你也要用同樣的方式, FileGet並且要確保字串初始化到預期長度。
隨機模式
對於以 Random 模式開啟的檔案,適用以下規則:
若所寫資料長度小於函式子句
FileOpen中指定的RecordLength長度,則FilePut會在記錄長度邊界寫入後續記錄。 一個記錄結束與下一個記錄起點之間的空間會填充檔案緩衝區的現有內容。 由於填充資料的數量無法確定,通常讓記錄長度與寫入資料長度相符是個好主意。 若所寫資料長度超過函式子句FileOpen所RecordLength規定的長度,則會拋出例外。如果被寫入的變數是字串,則
FilePut會寫一個包含字串長度的兩位元組描述符,然後寫入變數的資料。 因此,函式中子句FileOpen指定的RecordLength記錄長度必須比字串的實際長度至少長兩個位元組。如果被寫入的變數是一個包含數值型別的物件,則
FilePut會寫入兩個位元組來識別該物件的 ,VarType然後寫入變數。 例如,當寫入包含整數的物件時,FilePut會寫入六個位元組:兩個位元組將該物件識別為VarType(3)(Integer),以及四個位元組包含資料。 函式中參數FileOpen指定的RecordLength記錄長度必須比實際儲存變數所需的位元組數至少多兩個位元組。若被寫入變數為包含字串的物件,則
FilePut會寫入一個兩位元組的描述符來識別該物件的 ,VarType(8)一個兩位元組的描述符表示字串的長度,然後寫入字串資料。 函式參數指定的RecordLengthFileOpen記錄長度必須至少比字串實際長度長四個位元組。 如果你想放一個沒有描述符的字串,你應該把參數傳給TrueStringIsFixedLength參數,而你讀入的字串長度應該是正確的。如果要寫入的變數是陣列,你可以選擇是否為陣列的大小和維度寫描述符。 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)
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 如需詳細資訊,請參閱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
Optional. 記錄號(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 僅 Random 在 和 Binary 模式中有效。
以 寫入 FilePut 的資料通常會從 FileGet檔案中讀取。
檔案中的第一個記錄或位元組位於位置 1,第二個記錄或位元組位於位置 2,依此類推。 若省略RecordNumber,則在最後FileGetFilePut一個或函式後的記錄或位元組,或由最後Seek一個函式指向的,則會寫入。
參數 StringIsFixedLength 控制函式是將字串解釋為可變長度還是固定長度。
FilePut 當參數為 True時,並不會寫出長度描述子。 如果你用 StringIsFixedLength = True , FilePut你也要用同樣的方式, FileGet並且要確保字串初始化到預期長度。
隨機模式
對於以 Random 模式開啟的檔案,適用以下規則:
若所寫資料長度小於函式子句
FileOpen中指定的RecordLength長度,則FilePut會在記錄長度邊界寫入後續記錄。 一個記錄結束與下一個記錄起點之間的空間會填充檔案緩衝區的現有內容。 由於填充資料的數量無法確定,通常讓記錄長度與寫入資料長度相符是個好主意。 若所寫資料長度超過函式子句FileOpen所RecordLength規定的長度,則會拋出例外。如果被寫入的變數是字串,則
FilePut會寫一個包含字串長度的兩位元組描述符,然後寫入變數的資料。 因此,函式中子句FileOpen指定的RecordLength記錄長度必須比字串的實際長度至少長兩個位元組。如果被寫入的變數是一個包含數值型別的物件,則
FilePut會寫入兩個位元組來識別該物件的 ,VarType然後寫入變數。 例如,當寫入包含整數的物件時,FilePut會寫入六個位元組:兩個位元組將該物件識別為VarType(3)(Integer),以及四個位元組包含資料。 函式中參數FileOpen指定的RecordLength記錄長度必須比實際儲存變數所需的位元組數至少多兩個位元組。若被寫入變數為包含字串的物件,則
FilePut會寫入一個兩位元組的描述符來識別該物件的 ,VarType(8)一個兩位元組的描述符表示字串的長度,然後寫入字串資料。 函式參數指定的RecordLengthFileOpen記錄長度必須至少比字串實際長度長四個位元組。 如果你想放一個沒有描述符的字串,你應該把參數傳給TrueStringIsFixedLength參數,而你讀入的字串長度應該是正確的。如果要寫入的變數是陣列,你可以選擇是否為陣列的大小和維度寫描述符。 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)
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 如需詳細資訊,請參閱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
Optional. 記錄號(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 僅 Random 在 和 Binary 模式中有效。
以 寫入 FilePut 的資料通常會從 FileGet檔案中讀取。
檔案中的第一個記錄或位元組位於位置 1,第二個記錄或位元組位於位置 2,依此類推。 若省略RecordNumber,則在最後FileGetFilePut一個或函式後的記錄或位元組,或由最後Seek一個函式指向的,則會寫入。
參數 StringIsFixedLength 控制函式是將字串解釋為可變長度還是固定長度。
FilePut 當參數為 True時,並不會寫出長度描述子。 如果你用 StringIsFixedLength = True , FilePut你也要用同樣的方式, FileGet並且要確保字串初始化到預期長度。
隨機模式
對於以 Random 模式開啟的檔案,適用以下規則:
若所寫資料長度小於函式子句
FileOpen中指定的RecordLength長度,則FilePut會在記錄長度邊界寫入後續記錄。 一個記錄結束與下一個記錄起點之間的空間會填充檔案緩衝區的現有內容。 由於填充資料的數量無法確定,通常讓記錄長度與寫入資料長度相符是個好主意。 若所寫資料長度超過函式子句FileOpen所RecordLength規定的長度,則會拋出例外。如果被寫入的變數是字串,則
FilePut會寫一個包含字串長度的兩位元組描述符,然後寫入變數的資料。 因此,函式中子句FileOpen指定的RecordLength記錄長度必須比字串的實際長度至少長兩個位元組。如果被寫入的變數是一個包含數值型別的物件,則
FilePut會寫入兩個位元組來識別該物件的 ,VarType然後寫入變數。 例如,當寫入包含整數的物件時,FilePut會寫入六個位元組:兩個位元組將該物件識別為VarType(3)(Integer),以及四個位元組包含資料。 函式中參數FileOpen指定的RecordLength記錄長度必須比實際儲存變數所需的位元組數至少多兩個位元組。若被寫入變數為包含字串的物件,則
FilePut會寫入一個兩位元組的描述符來識別該物件的 ,VarType(8)一個兩位元組的描述符表示字串的長度,然後寫入字串資料。 函式參數指定的RecordLengthFileOpen記錄長度必須至少比字串實際長度長四個位元組。 如果你想放一個沒有描述符的字串,你應該把參數傳給TrueStringIsFixedLength參數,而你讀入的字串長度應該是正確的。如果要寫入的變數是陣列,你可以選擇是否為陣列的大小和維度寫描述符。 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)
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 如需詳細資訊,請參閱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
Optional. 記錄號(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 僅 Random 在 和 Binary 模式中有效。
以 寫入 FilePut 的資料通常會從 FileGet檔案中讀取。
檔案中的第一個記錄或位元組位於位置 1,第二個記錄或位元組位於位置 2,依此類推。 若省略RecordNumber,則在最後FileGetFilePut一個或函式後的記錄或位元組,或由最後Seek一個函式指向的,則會寫入。
參數 StringIsFixedLength 控制函式是將字串解釋為可變長度還是固定長度。
FilePut 當參數為 True時,並不會寫出長度描述子。 如果你用 StringIsFixedLength = True , FilePut你也要用同樣的方式, FileGet並且要確保字串初始化到預期長度。
隨機模式
對於以 Random 模式開啟的檔案,適用以下規則:
若所寫資料長度小於函式子句
FileOpen中指定的RecordLength長度,則FilePut會在記錄長度邊界寫入後續記錄。 一個記錄結束與下一個記錄起點之間的空間會填充檔案緩衝區的現有內容。 由於填充資料的數量無法確定,通常讓記錄長度與寫入資料長度相符是個好主意。 若所寫資料長度超過函式子句FileOpen所RecordLength規定的長度,則會拋出例外。如果被寫入的變數是字串,則
FilePut會寫一個包含字串長度的兩位元組描述符,然後寫入變數的資料。 因此,函式中子句FileOpen指定的RecordLength記錄長度必須比字串的實際長度至少長兩個位元組。如果被寫入的變數是一個包含數值型別的物件,則
FilePut會寫入兩個位元組來識別該物件的 ,VarType然後寫入變數。 例如,當寫入包含整數的物件時,FilePut會寫入六個位元組:兩個位元組將該物件識別為VarType(3)(Integer),以及四個位元組包含資料。 函式中參數FileOpen指定的RecordLength記錄長度必須比實際儲存變數所需的位元組數至少多兩個位元組。若被寫入變數為包含字串的物件,則
FilePut會寫入一個兩位元組的描述符來識別該物件的 ,VarType(8)一個兩位元組的描述符表示字串的長度,然後寫入字串資料。 函式參數指定的RecordLengthFileOpen記錄長度必須至少比字串實際長度長四個位元組。 如果你想放一個沒有描述符的字串,你應該把參數傳給TrueStringIsFixedLength參數,而你讀入的字串長度應該是正確的。如果要寫入的變數是陣列,你可以選擇是否為陣列的大小和維度寫描述符。 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)
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 如需詳細資訊,請參閱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
Optional. 記錄號(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 僅 Random 在 和 Binary 模式中有效。
以 寫入 FilePut 的資料通常會從 FileGet檔案中讀取。
檔案中的第一個記錄或位元組位於位置 1,第二個記錄或位元組位於位置 2,依此類推。 若省略RecordNumber,則在最後FileGetFilePut一個或函式後的記錄或位元組,或由最後Seek一個函式指向的,則會寫入。
參數 StringIsFixedLength 控制函式是將字串解釋為可變長度還是固定長度。
FilePut 當參數為 True時,並不會寫出長度描述子。 如果你用 StringIsFixedLength = True , FilePut你也要用同樣的方式, FileGet並且要確保字串初始化到預期長度。
隨機模式
對於以 Random 模式開啟的檔案,適用以下規則:
若所寫資料長度小於函式子句
FileOpen中指定的RecordLength長度,則FilePut會在記錄長度邊界寫入後續記錄。 一個記錄結束與下一個記錄起點之間的空間會填充檔案緩衝區的現有內容。 由於填充資料的數量無法確定,通常讓記錄長度與寫入資料長度相符是個好主意。 若所寫資料長度超過函式子句FileOpen所RecordLength規定的長度,則會拋出例外。如果被寫入的變數是字串,則
FilePut會寫一個包含字串長度的兩位元組描述符,然後寫入變數的資料。 因此,函式中子句FileOpen指定的RecordLength記錄長度必須比字串的實際長度至少長兩個位元組。如果被寫入的變數是一個包含數值型別的物件,則
FilePut會寫入兩個位元組來識別該物件的 ,VarType然後寫入變數。 例如,當寫入包含整數的物件時,FilePut會寫入六個位元組:兩個位元組將該物件識別為VarType(3)(Integer),以及四個位元組包含資料。 函式中參數FileOpen指定的RecordLength記錄長度必須比實際儲存變數所需的位元組數至少多兩個位元組。若被寫入變數為包含字串的物件,則
FilePut會寫入一個兩位元組的描述符來識別該物件的 ,VarType(8)一個兩位元組的描述符表示字串的長度,然後寫入字串資料。 函式參數指定的RecordLengthFileOpen記錄長度必須至少比字串實際長度長四個位元組。 如果你想放一個沒有描述符的字串,你應該把參數傳給TrueStringIsFixedLength參數,而你讀入的字串長度應該是正確的。如果要寫入的變數是陣列,你可以選擇是否為陣列的大小和維度寫描述符。 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)
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 如需詳細資訊,請參閱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
Optional. 記錄號(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 僅 Random 在 和 Binary 模式中有效。
以 寫入 FilePut 的資料通常會從 FileGet檔案中讀取。
檔案中的第一個記錄或位元組位於位置 1,第二個記錄或位元組位於位置 2,依此類推。 若省略RecordNumber,則在最後FileGetFilePut一個或函式後的記錄或位元組,或由最後Seek一個函式指向的,則會寫入。
參數 StringIsFixedLength 控制函式是將字串解釋為可變長度還是固定長度。
FilePut 當參數為 True時,並不會寫出長度描述子。 如果你用 StringIsFixedLength = True , FilePut你也要用同樣的方式, FileGet並且要確保字串初始化到預期長度。
隨機模式
對於以 Random 模式開啟的檔案,適用以下規則:
若所寫資料長度小於函式子句
FileOpen中指定的RecordLength長度,則FilePut會在記錄長度邊界寫入後續記錄。 一個記錄結束與下一個記錄起點之間的空間會填充檔案緩衝區的現有內容。 由於填充資料的數量無法確定,通常讓記錄長度與寫入資料長度相符是個好主意。 若所寫資料長度超過函式子句FileOpen所RecordLength規定的長度,則會拋出例外。如果被寫入的變數是字串,則
FilePut會寫一個包含字串長度的兩位元組描述符,然後寫入變數的資料。 因此,函式中子句FileOpen指定的RecordLength記錄長度必須比字串的實際長度至少長兩個位元組。如果被寫入的變數是一個包含數值型別的物件,則
FilePut會寫入兩個位元組來識別該物件的 ,VarType然後寫入變數。 例如,當寫入包含整數的物件時,FilePut會寫入六個位元組:兩個位元組將該物件識別為VarType(3)(Integer),以及四個位元組包含資料。 函式中參數FileOpen指定的RecordLength記錄長度必須比實際儲存變數所需的位元組數至少多兩個位元組。若被寫入變數為包含字串的物件,則
FilePut會寫入一個兩位元組的描述符來識別該物件的 ,VarType(8)一個兩位元組的描述符表示字串的長度,然後寫入字串資料。 函式參數指定的RecordLengthFileOpen記錄長度必須至少比字串實際長度長四個位元組。 如果你想放一個沒有描述符的字串,你應該把參數傳給TrueStringIsFixedLength參數,而你讀入的字串長度應該是正確的。如果要寫入的變數是陣列,你可以選擇是否為陣列的大小和維度寫描述符。 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)
將變數的資料寫入磁碟檔案。 這個 My 功能能讓你在檔案 I/O 操作 FilePut中提升生產力和效能。 如需詳細資訊,請參閱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
Optional. 記錄號(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 僅 Random 在 和 Binary 模式中有效。
以 寫入 FilePut 的資料通常會從 FileGet檔案中讀取。
檔案中的第一個記錄或位元組位於位置 1,第二個記錄或位元組位於位置 2,依此類推。 若省略RecordNumber,則在最後FileGetFilePut一個或函式後的記錄或位元組,或由最後Seek一個函式指向的,則會寫入。
參數 StringIsFixedLength 控制函式是將字串解釋為可變長度還是固定長度。
FilePut 當參數為 True時,並不會寫出長度描述子。 如果你用 StringIsFixedLength = True , FilePut你也要用同樣的方式, FileGet並且要確保字串初始化到預期長度。
隨機模式
對於以 Random 模式開啟的檔案,適用以下規則:
若所寫資料長度小於函式子句
FileOpen中指定的RecordLength長度,則FilePut會在記錄長度邊界寫入後續記錄。 一個記錄結束與下一個記錄起點之間的空間會填充檔案緩衝區的現有內容。 由於填充資料的數量無法確定,通常讓記錄長度與寫入資料長度相符是個好主意。 若所寫資料長度超過函式子句FileOpen所RecordLength規定的長度,則會拋出例外。如果被寫入的變數是字串,則
FilePut會寫一個包含字串長度的兩位元組描述符,然後寫入變數的資料。 因此,函式中子句FileOpen指定的RecordLength記錄長度必須比字串的實際長度至少長兩個位元組。如果被寫入的變數是一個包含數值型別的物件,則
FilePut會寫入兩個位元組來識別該物件的 ,VarType然後寫入變數。 例如,當寫入包含整數的物件時,FilePut會寫入六個位元組:兩個位元組將該物件識別為VarType(3)(Integer),以及四個位元組包含資料。 函式中參數FileOpen指定的RecordLength記錄長度必須比實際儲存變數所需的位元組數至少多兩個位元組。若被寫入變數為包含字串的物件,則
FilePut會寫入一個兩位元組的描述符來識別該物件的 ,VarType(8)一個兩位元組的描述符表示字串的長度,然後寫入字串資料。 函式參數指定的RecordLengthFileOpen記錄長度必須至少比字串實際長度長四個位元組。 如果你想放一個沒有描述符的字串,你應該把參數傳給TrueStringIsFixedLength參數,而你讀入的字串長度應該是正確的。如果要寫入的變數是陣列,你可以選擇是否為陣列的大小和維度寫描述符。 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