<unmanagedCodeEntityReference>Seek</unmanagedCodeEntityReference>-Funktion
Aktualisiert: November 2007
Gibt einen Long-Wert zurück, der in einer mit der FileOpen-Funktion geöffneten Datei die aktuelle Lese-/Schreibposition angibt oder die nächste Lese-/Schreibposition in einer mit der FileOpen-Funktion geöffneten Datei festlegt.
Das My-Feature ermöglicht bei Datei-E/A-Vorgängen höhere Produktivität und Leistung als Seek. Weitere Informationen hierzu finden Sie unter My.Computer.FileSystem-Objekt.
Public Overloads Function Seek( _
ByVal FileNumber As Integer _
) As Long
' -or-
Public Overloads Sub Seek( _
ByVal FileNumber As Integer, _
ByVal Position As Long _
)
Parameter
FileNumber
Erforderlich. Ein Integer-Wert mit einer beliebigen gültigen Dateinummer.Position
Erforderlich. Zahl im Bereich 1 bis 2.147.483.647 (einschließlich), die die Position für den nächsten Lese- oder Schreibvorgang angibt.
Ausnahmen
Ausnahmetyp |
Fehlernummer |
Bedingung |
---|---|---|
FileNumber ist nicht vorhanden. |
||
Dateimodus ist ungültig. |
Beachten Sie die Spalte "Fehlernummer", wenn Sie Visual Basic 6.0-Anwendungen aktualisieren, die eine unstrukturierte Fehlerbehandlung verwenden. (Sie können die Fehlernummer mit der Number-Eigenschaft (Err-Objekt) vergleichen.) Wenn möglich, sollten Sie jedoch erwägen, eine solche Fehlersteuerung durch eine Übersicht über die strukturierte Ausnahmebehandlung für Visual Basic zu ersetzen.
Hinweise
Seek gibt einen Wert aus dem Bereich von 1 bis einschließlich 2.147.483.647 (entspricht 2^31 - 1) zurück.
Die folgende Aufstellung beschreibt die Rückgabewerte für die einzelnen Dateizugriffsmodi:
Modus |
Rückgabewert |
---|---|
Random |
Nummer des nächsten zu lesenden oder zu schreibenden Datensatzes. |
Binary, Input, Output, Append |
Byteposition, an der die nächste Operation stattfindet. Das erste Byte einer Datei hat die Position 1, das zweite Byte die Position 2 usw. |
Beispiel
In diesem Beispiel wird mit der Seek-Funktion die aktuelle Dateiposition zurückgegeben. In diesem Beispiel ist TestFile eine Datei, die Datensätze mit der Struktur Record enthält.
Structure Record ' Define user-defined type.
Dim ID As Integer
Dim Name As String
End Structure
Bei im Random-Modus geöffneten Dateien gibt Seek die Nummer des nächsten Datensatzes zurück.
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)
Bei nicht im Random-Modus geöffneten Dateien gibt Seek die Byteposition zurück, an der der nächste Vorgang stattfindet. In dem Beispiel enthält die Datei TestFile einige Zeilen mit Text.
' 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)
In diesem Beispiel wird mit der Seek-Funktion die Dateiposition für den nächsten Lese-/Schreibvorgang festgelegt. In diesem Beispiel ist People.txt eine Datei, die Datensätze mit der Struktur Record enthält.
Structure TestRecord
Dim Name As String
Dim ID As Integer
End Structure
Bei Dateien, die nicht im Random-Modus geöffnet wurden, legt Seek die Byteposition fest, an der die nächste Operation stattfindet. In dem Beispiel enthält die Datei TestFile einige Zeilen mit Text.
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)
Hinweise für Entwickler intelligenter Geräte
Diese Funktion wird nicht unterstützt.
Anforderungen
Namespace:Microsoft.VisualBasic
**Modul:**FileSystem
**Assembly:**Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)