共用方式為


FileSystem.FileGet 方法 (Int32, Single, Int64)

自開啟的磁碟檔讀取資料至變數中。My 功能提供比 FileGet 更強的檔案 I/O 作業產能和效能。如需詳細資訊,請參閱 My.Computer.FileSystem 物件

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

語法

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

FileSystem.FileGet(FileNumber, Value, RecordNumber)
public static void FileGet (
    int FileNumber,
    ref float Value,
    [OptionalAttribute] long RecordNumber
)
public:
static void FileGet (
    int FileNumber, 
    float% Value, 
    [OptionalAttribute] long long RecordNumber
)
public static void FileGet (
    int FileNumber, 
    /** @ref */ float Value, 
    /** @attribute OptionalAttribute() */ long RecordNumber
)
JScript 並不支援以參考方式來傳遞實值型別的引數。

參數

  • FileNumber
    必要項。任何有效的檔案號碼。
  • Value
    必要項。儲存讀取資料的有效變數名稱。
  • RecordNumber
    選擇項。讀取開始的資料錄數目 (Random 模式檔案) 或位元組數目 (Binary 模式檔案)。

備註

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

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

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

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

Security note安全性注意事項

讀取檔案時,請勿根據副檔名決定檔案內容。例如,名稱為 Form1.vb 的檔案未必是 Visual Basic 的原始程式檔。

隨機模式

下列規則適用於在 Random 模式下開啟的檔案:

  • 如果所讀取資料的長度短於 FileOpen 函式中 RecordLength 子句所指定的長度,則 FileGet 會在資料錄長度界限上讀取後續的資料錄。資料錄結尾與下一個資料錄開頭之間的空間,已由檔案緩衝區的現有內容所填補。因為無法以任何確實方式判斷填補資料的數量,所以通常最好讓資料錄的長度與讀取資料的長度相符。

  • 如果讀入的變數是字串,則根據預設 FileGet 會讀取包含字串長度的二位元組描述項,再讀取傳到變數中的資料。因此,FileOpen 函式的 RecordLength 子句所指定的資料錄長度,至少必須比字串的實際長度多兩個位元組。Visual Basic 6.0 (含) 以前的版本支援固定長度的字串,且在置入檔案時不會寫入長度描述項。如果您想讀取不含描述項的字串,就必須將 True 傳遞至 StringIsFixedLength 參數,而且讀入的字串之長度應該要正確。

  • 如果讀入的變數是陣列,您可以選擇是否要讀取陣列大小和維度的描述項。若要寫入描述項,請將 ArrayIsDynamic 參數設定為 True。讀取陣列時,您必須配合陣列寫入的方式。如果它是和描述項一起寫入,您就必須讀取此描述項。如果不使用描述項,則會使用傳入 FileGet 的陣列之大小和界限來判斷要讀取的內容。

    描述項會指定陣列的陣序規範,每個陣序規範的大小和下限。它的長度等於 2 加 8,再乘以維度數:(2 + 8 * NumberOfDimensions)FileOpen 函式中的 RecordLength 參數所指定的資料錄長度,必須大於或等於寫入陣列資料和陣列描述項所需的所有位元組總和。例如,將陣列寫入磁碟時,下列陣列宣告需要 118 個位元組。

    Dim MyArray(4,9) As Integer
    

    118 位元組的分散如下:

    • 18 個位元組供描述項使用:(2 + 8 * 2)

    • 100 個位元組供資料使用:(5 * 10 * 2)

  • 如果讀入的變數是其他任何型別的變數 (非可變長度字串或物件),FileGet 僅讀取變數資料。FileOpen 函式中的 RecordLength 子句所指定的資料錄長度必須大於或等於正在讀取的資料長度。

  • FileGet 讀取結構項目的方式,就如同個別讀取每個項目一樣 (只是項目間沒有任何填補)。在磁碟中,使用者定義型別的動態陣列 (以 FilePut 寫入) 是以長度等於 2 加 8 再乘以維度數的描述項為前置詞:(2 + 8 * NumberOfDimensions)FileOpen 函式中的 RecordLength 子句所指定的資料錄長度,必須大於或等於讀取個別元素所需的所有位元組總和,包括所有陣列和它們的描述項。VBFixedString 屬性可套用於結構中的字串欄位,以指出字串寫入磁碟時的大小。

二進位模式

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

  • FileOpen 函式中的 RecordLength 子句沒有作用。FileGet 從磁碟中連續讀取所有變數,也就是說,資料錄之間沒有填補。

  • 對於非結構中陣列的其他陣列,FileGet 只會讀取資料。不會讀取描述項。

  • FileGet 讀取非結構之項目的可變長度字串時,不會預期讀到雙位元組的長度描述項。讀取的位元組數等於字串中已經有的字元數。

    Security note安全性注意事項

    FileGet 函式讀取檔案,需要 FileIOPermissionAccess 列舉型別的 Read 存取權限。

平台

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 命名空間

其他資源

FileGet 函式
FileOpen 函式
FilePut 函式
Seek 函式
FileGetObject 函式
在 Visual Basic 中讀取檔案
在 Visual Basic 中寫入檔案