共用方式為


FileSystem.FilePut 方法 (Int32, Double, Int64)

將變數資料寫入磁碟檔案。My 功能提供比 FilePut 更強的檔案 I/O 作業產能和效能。如需詳細資訊,請參閱 My.Computer.FileSystem 物件

命名空間: Microsoft.VisualBasic
組件: Microsoft.VisualBasic (在 microsoft.visualbasic.dll 中)

語法

'宣告
Public Shared Sub FilePut ( _
    FileNumber As Integer, _
    Value As Double, _
    <OptionalAttribute> Optional RecordNumber As Long = -1 _
)
'用途
Dim FileNumber As Integer
Dim Value As Double
Dim RecordNumber As Long

FileSystem.FilePut(FileNumber, Value, RecordNumber)
public static void FilePut (
    int FileNumber,
    double Value,
    [OptionalAttribute] long RecordNumber
)
public:
static void FilePut (
    int FileNumber, 
    double Value, 
    [OptionalAttribute] long long RecordNumber
)
public static void FilePut (
    int FileNumber, 
    double Value, 
    /** @attribute OptionalAttribute() */ long RecordNumber
)
public static function FilePut (
    FileNumber : int, 
    Value : double, 
    RecordNumber : long
)

參數

  • FileNumber
    必要項。任何有效的檔案號碼。
  • Value
    必要項。有效的變數名稱,該名稱包含已寫入磁碟的資料。
  • RecordNumber
    選擇項。寫入開始的資料錄數目 (Random 模式檔案) 或位元組數目 (Binary 模式檔案)。

備註

如需詳細資訊,請參閱 Visual Basic 的主題 FilePut 函式

FilePut 只有在 RandomBinary 模式中是有效的。

FilePut 寫入的資料,通常都是使用 FileGet 自檔案中讀取。

檔案中的第一筆記錄或第一個位元組位於位置 1,第二筆記錄或第二個位元組位於位置 2,以此類推。如果您省略 RecordNumber,則會寫入最後一個 FileGetFilePut 函式之後或最後一個 Seek 函式所指向的下一筆資料錄或位元組。

StringIsFixedLength 引數控制函式將字串解譯為可變或固定長度。當引數為 True 時,FilePut 就不會寫入長度描述項。如果您將 StringIsFixedLength = TrueFilePut 一起搭配使用,就必須對 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 子句所指定的資料錄長度,必須大於或等於寫入陣列資料和陣列描述項所需的所有位元組總和。例如,將陣列寫入磁碟時,下列陣列宣告需要 118 個位元組。

    Dim MyArray(4,9) As Integer
    
  • 如果寫入的變數是任何其他型別的變數 (非可變長度字串或物件),則 FilePut 僅寫入變數資料。FileOpen 函式中的 RecordLength 子句所指定的資料錄長度必須大於或等於寫入資料的長度。

  • FilePut 寫入結構項目的方式,就如同個別寫入每個項目一樣 (只是項目間沒有任何填補)。VBFixedString 屬性可套用於結構中的字串欄位,以指示字串寫入磁碟時的大小。

    Note注意事項

    寫入磁碟中時,字串欄位中超過由 VBFixedString 屬性所指定的位元組將被截斷,

二進位模式

對於在 Binary 模式下開啟的檔案而言,大多數的 Random 模式規則都適用,不過有少數的例外情形。在 Binary 模式中開啟的檔案所適用的下列規則與 Random 模式的規則不同:

  • FileOpen 函式中的 RecordLength 子句沒有作用。FilePut 將所有變數連續地寫入磁碟,也就是說,在資料錄之間沒有填補。

  • 對於非結構中陣列的其他陣列,FilePut 只會寫入資料。不會寫入描述項。

  • FilePut 寫入非結構項目的變動長度字串時,不會寫入雙位元組的長度描述項。寫入的位元組數等於字串中的字元數。例如,下列陳述式會將 11 個位元組寫入檔案號碼 1:

    Dim hellow As String = "Hello World"
    FilePut(1,hellow)
    
  • FilePut 函式寫入至檔案,需要 FileIOPermissionAccess 列舉型別的 Write 存取權限。

範例

這個範例使用 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

平台

Windows 98、 Windows 2000 SP4、 Windows Millennium Edition、 Windows Server 2003、 Windows XP Media Center Edition、 Windows XP Professional x64 Edition、 Windows XP SP2、 Windows XP Starter Edition

.NET Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱系統需求一節的內容。

版本資訊

.NET Framework

支援版本:2.0、1.1、1.0

請參閱

參考

FileSystem 類別
FileSystem 成員
Microsoft.VisualBasic 命名空間
ArgumentException
IOException

其他資源

FilePut 函式
FileGet 函式
FileOpen 函式
Seek 函式
FileGetObject 函式
VBFixedStringAttribute 類別
Len 函式 (Visual Basic)
在 Visual Basic 中寫入檔案