Put 語句

將資料從 變數 寫入磁片檔案。

語法

Put [ # ] filenumber, [ recnumber ], varname

Put語句語法具有下列部分:

部分 描述
filenumber 必要。 任何有效的檔案編號
recnumber 選用。 Variant (Long) 。 記錄號碼 (開始寫入時, 隨機 模式檔案) 或 (二進位 模式檔案) 位元組編號。
varname 此為必要動作。 包含要寫入磁片之資料的變數名稱。

註解

使用 Put 寫入的資料通常會從具有 Get 的檔案讀

檔案中的第一筆記錄或位元組位於位置 1,第二筆記錄或位元組位於位置 2,依此類推。 如果您省略 recnumber,則會寫入最後 一個 GetPut 語句之後的下一筆記錄或位元組,或最後一個 Seek 函式 所指向的位元組。 您必須包含分隔逗號,例如:

Put #4,,FileBuffer 

針對以 隨機 模式開啟的檔案,適用下列規則:

  • 如果所寫入資料的長度小於Open語句的 Len子句中指定的長度,Put會在記錄長度界限上寫入後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的間距會與檔案緩衝區的現有內容填補。 因為填補資料量無法以任何確定性來決定,所以最好讓記錄長度符合所寫入資料的長度。 如果所寫入資料的長度大於Open語句的 Len子句中指定的長度,就會發生錯誤。

  • 如果要寫入的變數是可變長度字串, Put 會寫入包含字串長度的 2 位元組描述元,然後寫入變數。 Open語句中Len子句所指定的記錄長度必須至少大於字串的實際長度 2 個位元組。

  • 如果要寫入的變數是數數值型別的VariantPut會寫入 2 個位元組來識別VariantVarType,然後寫入變數。 例如,撰寫VarType 3 的Variant時,Put會寫入 6 個位元組:將Variant識別為VarType 3 的 2 個位元組 (Long) ,以及包含Long資料的 4 個位元組。 Open語句中Len子句所指定的記錄長度必須至少大於儲存變數所需的實際位元組數目 2 個位元組。

    注意事項

    使用Put語句將Variant陣列寫入磁盤,但您無法使用Put將包含陣列的純量Variant寫入磁片。 您也無法使用 Put 將物件寫入磁片。

  • 如果要寫入的變數是VarType 8 (String) 的VariantPut會寫入 2 個位元組來識別VarType,2 個位元組表示字串的長度,然後寫入字串資料。 Open語句中Len子句所指定的記錄長度必須至少大於字串的實際長度 4 個位元組。

  • 如果要寫入的變數是動態陣列, Put 會寫入長度等於維度數目 2 加 8 倍的描述項,也就是 2 + 8 * NumberOfDimensionsOpen語句中Len子句所指定的記錄長度必須大於或等於寫入陣列資料和陣列描述項所需的所有位元組總和。 例如,當陣列寫入磁片時,下列陣列宣告需要 118 個位元組。

    Dim MyArray(1 To 5,1 To 10) As Integer 
    
    
  • 118 個位元組的分佈方式如下:描述元 () 2 + 8 * 2 為 18 個位元組,資料 (5 * 10 * 2) 為 100 個位元組。

  • 如果要寫入的變數是固定大小的陣列, Put 只會寫入資料。 沒有描述項寫入磁片。

  • 如果要寫入的變數是任何其他類型的變數, (不是可變長度字串或 Variant) , Put 只會寫入變數資料。 Open語句中Len子句所指定的記錄長度必須大於或等於所寫入資料的長度。

  • 使用者定義型別的寫入專案,就像是個別寫入一樣,不同之處在于元素之間沒有填補。 在磁片上,以 Put 撰寫之使用者定義類型的動態陣列會以長度等於 2 加上維度數目的 8 倍的描述項做為前置詞,也就是 2 + 8 * NumberOfDimensionsOpen語句中Len子句所指定的記錄長度必須大於或等於寫入個別專案所需的所有位元組總和,包括任何陣列及其描述項。

針對 以二進位 模式開啟的檔案,所有 隨機 規則都適用,但:

  • Open語句中的Len子句沒有作用。 所有變數連續寫入磁片;也就是說,記錄之間沒有邊框間距。

  • 對於使用者定義型別中陣列以外的任何陣列, Put 只會寫入資料。 未寫入描述項。

  • 寫入不是使用者定義型別元素的可變長度字串放入,而不需要 2 位元組長度描述項。 寫入的位元組數目等於字串中的字元數。 例如,下列語句會將 10 個位元組寫入檔案編號 1:

      VarString$ = String$(10," ") 
      Put #1,,VarString$ 
    
    

範例

這個範例會使用 Put 語句將資料寫入檔案。 使用者定義型別的五筆記錄會寫入檔案。

Type Record ' Define user-defined type. 
 ID As Integer 
 Name As String * 20 
End Type 
 
Dim MyRecord As Record, RecordNumber ' Declare variables. 
' Open file for random access. 
Open "TESTFILE" For Random As #1 Len = Len(MyRecord) 
For RecordNumber = 1 To 5 ' Loop 5 times. 
 MyRecord.ID = RecordNumber ' Define ID. 
 MyRecord.Name = "My Name" & RecordNumber ' Create a string. 
 Put #1, RecordNumber, MyRecord ' Write record to file. 
Next RecordNumber 
Close #1 ' Close file. 

另請參閱

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應