共用方式為


Get 陳述式

將數據從開啟的磁碟檔案讀入 變數

語法

Get [ # ] filenumber, [ recnumber ], varname

Get 語句語法包含下列部分:

部分 描述
filenumber 必要。 任何有效的檔案編號
recnumber 選用。 Variant (Long) 。 ) 開始讀取的二進位模式檔案) 或位元組編號 (隨機模式檔案記錄 (編號。
varname 此為必要動作。 讀取數據的有效變數名稱。

註解

使用 Get 讀取的數據通常會寫入至 具有 Put 的檔案。 檔案中的第一筆記錄或位元組位於位置 1,第二筆記錄或位元組位於位置 2,依此類推。 如果您省略 recnumber,則會讀取最後一個 GetPut之後的下一筆記錄或位元組 (或最後一個 Seek 函式所指向) 。 您必須包含分隔逗號,例如:

Get #4,,FileBuffer 

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

  • 如果讀取的數據長度小於 Open 語句的 Len 子句中指定的長度,Get 會讀取記錄長度界限上的後續記錄。 一筆記錄結尾與下一筆記錄開頭之間的間距會與檔案緩衝區的現有內容填補。 因為填補數據量無法以任何確定性來決定,所以通常最好讓記錄長度符合所讀取數據的長度。

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

  • 如果要讀入的變數是數值類型的Variant,Get讀取 2 個字節,識別 VariantVarType,然後讀取進入變數的數據。 例如,讀取 VarType 3 的 Variant 時,取得讀取 6 個字節:將 Variant 識別為 VarType 3 的 2 個字節 (Long) ,以及包含 Long 數據的 4 個字節。 Open 語句中 Len 子句所指定的記錄長度必須至少大於儲存變數所需的實際位元組數目 2 個字節。

    注意事項

    使用 Get句從磁碟讀取 Variant 陣列,但您無法使用 Get 讀取包含數位的純量 Variant。 您也無法使用 Get 從磁碟讀取物件。

  • 如果要讀入的變數是 VarType 8 (String) 的 Variant取得識別 VarType 的 2 個字節、指出字元串長度的 2 個字節,然後讀取字元串數據。 Open 語句中 Len 子句所指定的記錄長度必須至少大於字元串的實際長度 4 個字節。

  • 如果要讀入的變數是動態數位, Get 會讀取長度等於 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 個字節。

  • 如果要讀入的變數是固定大小的陣列, 取得 唯讀取數據。 未讀取描述項。

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

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

針對 以二進位 模式開啟的檔案,所有 隨機 規則都會套用,但下列專案除外:

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

  • 對於使用者定義型別中陣列以外的任何數位, 取得 只會讀取數據。 未讀取描述項。

  • 取得 讀取不是使用者定義型別元素的可變長度字串,而不需要預期 2 位元組長度描述項。 讀取的位元組數目等於字串中已存在的字元數。 例如,下列語句會從 檔案編號 1 讀取 10 個字節:

      VarString = String(10," ") 
      Get #1,,VarString 
    
    

範例

此範例會使用 Get 語句,將檔案中的數據讀取到變數中。 此範例假設 TESTFILE 包含使用者定義型別五筆記錄的檔案是包含使用者定義類型 Record之五筆記錄的檔案。

Type Record ' Define user-defined type. 
 ID As Integer 
 Name As String * 20 
End Type 
 
Dim MyRecord As Record, Position ' Declare variables. 
' Open sample file for random access. 
Open "TESTFILE" For Random As #1 Len = Len(MyRecord) 
' Read the sample file using the Get statement. 
Position = 3 ' Define record number. 
Get #1, Position, MyRecord ' Read third record. 
Close #1 ' Close file. 

另請參閱

支援和意見反應

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