Seek 함수

업데이트: 2007년 11월

FileOpen 함수를 사용하여 연 파일에서 현재 읽기/쓰기 위치를 지정하는 Long을 반환하거나, FileOpen 함수를 사용하여 연 파일에서 다음 읽기/쓰기 작업 위치를 설정합니다.

My 기능은 파일 I/O 작업에서 생산성 및 성능이 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에서 파일에 쓰기