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 사이의 수로 다음 읽기/쓰기 작업이 이루어질 위치를 나타냅니다.
예외
예외 형식 |
오류 번호 |
조건 |
---|---|---|
FileNumber가 없습니다. |
||
파일 모드가 잘못되었습니다. |
비구조적 오류 처리를 사용하는 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)