Поделиться через


Функция Seek

Обновлен: Ноябрь 2007

Возвращает значение Long, указывающее текущую позицию ввода/вывода в файле, открытом при помощи функции FileOpen, или определяет позицию для следующей операции ввода/вывода в файле, открытом при помощи функции FileOpen.

Функция My обеспечивает более высокую производительность и быстродействие операций ввода и вывода, чем Seek. Дополнительные сведения см. в разделе Объект My.Computer.FileSystem.

Public Overloads Function Seek( _
   ByVal FileNumber As Integer _
) As Long
' -or-
Public Overloads Sub Seek( _
   ByVal FileNumber As Integer, _
   ByVal Position As Long _
)

Параметры

  • FileNumber
    Обязательно. Integer, содержащее допустимый номер файла.

  • Position
    Обязательно. Число в диапазоне от 1 до 2 147 483 647 включительно, определяющее место следующей операции ввода-вывода.

Исключения

Тип исключения

Номер ошибки

Условие

IOException

52

FileNumber не существует.

IOException

54

Недопустимый режим файла.

См. столбец "Номер ошибки", если выполняется обновление приложений Visual Basic 6.0, в которых используется неструктурированная обработка ошибок. (Можно сравнить номер ошибки с Свойство Number (объект Err).) Однако по возможности следует заменять такую систему управления ошибками на Обзор структурной обработки исключений в Visual Basic.

Заметки

Функция Seek возвращает значение между 1 и 2 147 483 647 (что эквивалентно 2^31 – 1) включительно.

Ниже приведены возвращаемые значения для каждого режима доступа к файлу:

Режим доступа

Возвращаемое значение

Random

Номер следующей считываемой или записываемой записи

Binary, Input, Output, Append

Позиция байта, в которой будет выполнена следующая операция. Первый байт в файле находится в позиции 1, второй байт в позиции 2 и т.д.

Пример

В этом примере функция 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 для установки позиции следующей операции ввода-вывода в файл. В этом примере предполагается, что People.txt представляет собой файл, содержащий записи структуры Record.

Structure TestRecord
   Dim Name As String
   Dim ID As Integer
End Structure

Для файлов, открытых в режимах, отличных от 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)

Примечания для разработчиков интеллектуальных устройств

Данная функция не поддерживается.

Требования

Пространство имен: Microsoft.VisualBasic

**Модуль:**FileSystem

**Сборка:**Visual Basic (библиотека времени выполнения, в Microsoft.VisualBasic.dll)

См. также

Ссылки

Функция FileGet

Функция Loc

Функция FileOpen

Функция FilePut

IOException

Другие ресурсы

Чтение из файлов в Visual Basic

Запись в файлы в Visual Basic