FileSystem.Seek 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回指定使用 Long
函式開啟的檔案中目前讀取/寫入位置的 FileOpen
,或設定使用 FileOpen
函式開啟的檔案中下一個讀取/寫入作業的位置。 相較於 Seek
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
多載
Seek(Int32) |
傳回指定使用 |
Seek(Int32, Int64) |
傳回指定使用 |
Seek(Int32)
傳回指定使用 Long
函式開啟的檔案中目前讀取/寫入位置的 FileOpen
,或設定使用 FileOpen
函式開啟的檔案中下一個讀取/寫入作業的位置。 相較於 Seek
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public:
static long Seek(int FileNumber);
public static long Seek (int FileNumber);
static member Seek : int -> int64
Public Function Seek (FileNumber As Integer) As Long
參數
- FileNumber
- Int32
必要。 包含有效檔案編號的 Integer
。
傳回
指定使用 FileOpen
函式開啟的檔案中目前讀取/寫入位置的 Long
,或設定使用 FileOpen
函式開啟之檔案中下一個讀取/寫入作業的位置。
例外狀況
檔案模式無效。
範例
這個範例會使用函 Seek
式傳回目前的檔案位置。 此範例假設 TestFile
是包含 結構 Record
記錄的檔案。
Structure Record ' Define user-defined type.
Dim ID As Integer
Dim Name As String
End Structure
針對以 Random
模式開啟的檔案, Seek
傳回下一筆記錄的數目。
FileOpen(1, "TESTFILE", OpenMode.Random)
Do While Not EOF(1)
WriteLine(1, Seek(1)) ' Write record number.
FileGet(1, MyRecord, -1) ' Read next record.
Loop
FileClose(1)
如果是以模式以外的 Random
模式開啟的檔案, Seek
會傳回下一個作業發生的位元組位置。 假設 TestFile
是包含數行文字的檔案。
' Report character position at beginning of each line.
Dim TextLine As String
FileOpen(1, "TESTFILE", OpenMode.Input) ' Open file for reading.
While Not EOF(1)
' Read next line.
TextLine = LineInput(1)
' Position of next line.
MsgBox(Seek(1))
End While
FileClose(1)
這個範例會使用 函 Seek
式來設定檔案中下一個讀取或寫入的位置。
如果是以模式以外的 Random
模式開啟的檔案, Seek
請設定下一個作業發生的位元組位置。 假設 TestFile
是包含數行文字的檔案。
Dim someText As String = "This is a test string."
' Open file for output.
FileOpen(1, "TESTFILE", OpenMode.Input)
' Move to the third character.
Seek(1, 3)
Input(1, someText)
Console.WriteLine(someText)
FileClose(1)
備註
Seek
會傳回介於 1 到 2,147,483,647 (相當於 2^31 - 1) 的值,包含。
下列描述每個檔案存取模式的傳回值:
模式 | 傳回值 |
---|---|
Random |
讀取或寫入下一筆記錄的數目 |
Binary , Input , Output , Append |
發生下一個作業的位元組位置。 檔案中的第一個字節位於位置 1、第二個字節位於位置 2 等等。 |
另請參閱
- FileGet
- Loc(Int32)
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- FilePut
- IOException
- 在 Visual Basic 中讀取檔案
- 在 Visual Basic 中寫入檔案
適用於
Seek(Int32, Int64)
傳回指定使用 Long
函式開啟的檔案中目前讀取/寫入位置的 FileOpen
,或設定使用 FileOpen
函式開啟的檔案中下一個讀取/寫入作業的位置。 相較於 Seek
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱FileSystem。
public:
static void Seek(int FileNumber, long Position);
public static void Seek (int FileNumber, long Position);
static member Seek : int * int64 -> unit
Public Sub Seek (FileNumber As Integer, Position As Long)
參數
- FileNumber
- Int32
必要。 包含有效檔案編號的 Integer
。
- Position
- Int64
必要。 在 1-2,147,483,647 範圍之間的數字 (包括頭尾),表示應該發生下一個讀取/寫入作業的位置。
例外狀況
檔案模式無效。
範例
這個範例會使用函 Seek
式傳回目前的檔案位置。 此範例假設 TestFile
是包含 結構 Record
記錄的檔案。
Structure Record ' Define user-defined type.
Dim ID As Integer
Dim Name As String
End Structure
針對以 Random
模式開啟的檔案, Seek
傳回下一筆記錄的數目。
FileOpen(1, "TESTFILE", OpenMode.Random)
Do While Not EOF(1)
WriteLine(1, Seek(1)) ' Write record number.
FileGet(1, MyRecord, -1) ' Read next record.
Loop
FileClose(1)
如果是以模式以外的 Random
模式開啟的檔案, Seek
會傳回下一個作業發生的位元組位置。 假設 TestFile
是包含數行文字的檔案。
' Report character position at beginning of each line.
Dim TextLine As String
FileOpen(1, "TESTFILE", OpenMode.Input) ' Open file for reading.
While Not EOF(1)
' Read next line.
TextLine = LineInput(1)
' Position of next line.
MsgBox(Seek(1))
End While
FileClose(1)
這個範例會使用 函 Seek
式來設定檔案中下一個讀取或寫入的位置。
如果是以模式以外的 Random
模式開啟的檔案, Seek
請設定下一個作業發生的位元組位置。 假設 TestFile
是包含數行文字的檔案。
Dim someText As String = "This is a test string."
' Open file for output.
FileOpen(1, "TESTFILE", OpenMode.Input)
' Move to the third character.
Seek(1, 3)
Input(1, someText)
Console.WriteLine(someText)
FileClose(1)
備註
Seek
會傳回介於 1 到 2,147,483,647 (相當於 2^31 - 1) 的值,包含。
下列描述每個檔案存取模式的傳回值:
模式 | 傳回值 |
---|---|
Random |
讀取或寫入下一筆記錄的數目 |
Binary , Input , Output , Append |
發生下一個作業的位元組位置。 檔案中的第一個字節位於位置 1、第二個字節位於位置 2 等等。 |
另請參閱
- FileGet
- Loc(Int32)
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- FilePut
- IOException
- 在 Visual Basic 中讀取檔案
- 在 Visual Basic 中寫入檔案