FileGet 함수

업데이트: 2007년 11월

열린 디스크 파일에서 변수로 데이터를 읽습니다.

My 기능은 파일 I/O 작업에서 생산성 및 성능이 FileGet보다 우수합니다. 자세한 내용은 My.Computer.FileSystem 개체를 참조하십시오.

Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Object, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Short, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Integer, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Single, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Double, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Decimal, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Byte, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Boolean, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Date, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As System.Array, _
   Optional RecordNumber As Integer = -1, _
   Optional ArrayIsDynamic As Boolean = False _
)
' -or-
Public Overloads Sub FileGet(
   ByVal FileNumber As Integer, _
   ByRef Value As String, _
   Optional RecordNumber As Integer = -1, _
   Optional StringIsFixedLength As Boolean = False _
)

매개 변수

  • FileNumber
    필수적 요소. 임의의 유효한 파일 번호입니다.

  • Value
    필수적 요소. 데이터를 읽어들일 유효한 변수 이름입니다.

  • RecordNumber
    선택적 요소. 읽기를 시작할 레코드 번호(Random 모드 파일) 또는 바이트 숫자(Binary 모드 파일)입니다.

  • ArrayIsDynamic
    선택적 요소. 배열을 쓰는 경우에만 적용됩니다. 배열을 동적으로 처리할지 여부와 배열의 크기 및 범위를 설명하는 배열 설명자가 필요한지 여부를 지정합니다.

  • StringIsFixedLength
    선택적 요소. 문자열을 쓸 때만 적용합니다. 길이를 설명하는 문자열에 대해 2바이트 설명자를 쓸 것인지 여부를 지정합니다. 기본값은 False입니다.

예외

예외 형식

오류 번호

조건

ArgumentException

63

RecordNumber가 1보다 작고 –1은 아닙니다.

IOException

52

FileNumber가 없습니다.

IOException

54

파일 모드가 잘못되었습니다.

비구조적 오류 처리를 사용하는 Visual Basic 6.0 응용 프로그램을 업그레이드하는 경우에는 "오류 번호" 열을 참조하십시오. 오류 번호를 Number 속성(Err 개체)과 비교할 수 있습니다. 그러나 가능하면 이러한 오류 제어 방법을 Visual Basic의 구조적 예외 처리 개요에 설명된 방식으로 바꾸는 것이 좋습니다.

설명

FileGet은 Random 및 Binary 모드에서만 유효합니다.

FileGet 함수를 사용하여 읽은 데이터는 일반적으로 FilePut 함수를 사용하여 파일에 씁니다.

파일에서 첫째 레코드나 바이트는 위치 1에 있고 둘째 레코드와 바이트는 위치 2에 있으며 이와 같은 식으로 계속 이어집니다. RecordNumber를 생략하면 마지막 FileGet 또는 FilePut 함수 다음의 레코드나 바이트(또는 마지막 Seek 함수에서 가리키는 레코드나 바이트)를 읽습니다.

보안 정보:

파일을 읽을 때 파일 확장명을 기준으로 파일 내용을 짐작해서는 안 됩니다. 예를 들어, Form1.vb라는 파일이 Visual Basic 소스 파일이 아닐 수도 있습니다.

Random 모드

Random 모드로 연 파일에는 다음 규칙이 적용됩니다.

  • 읽고 있는 데이터의 길이가 FileOpen 함수의 RecordLength 절에 지정한 길이보다 짧으면 FileGet은 레코드 길이 경계에 있는 후속 레코드를 읽습니다. 한 레코드 끝 지점과 다음 레코드 시작 지점 사이에는 파일 버퍼의 기존 내용이 채워집니다. 채워지는 데이터 양이 명확하지 않으므로 레코드 길이를 읽을 데이터의 길이와 일치시키는 것이 일반적으로 좋습니다.

  • 읽고 있는 변수가 문자열이면 FileGet은 기본적으로 해당 문자열 길이를 포함하는 2바이트 설명자를 읽은 다음 변수에 전달되는 데이터를 읽습니다. 따라서 FileOpen 함수의 RecordLength 절로 지정한 레코드 길이는 문자열의 실제 길이보다 2바이트 이상 더 길어야 합니다. Visual Basic 6.0과 그 이전 버전에서는 고정 길이 문자열이 지원되므로 파일에 쓸 때 길이 설명자는 기록되지 않습니다. 설명자 없이 문자열을 읽으려면 StringIsFixedLength 매개 변수에 True를 전달해야 하며, 읽어올 문자열의 길이가 정확해야 합니다.

  • 읽어들이는 변수가 배열이면 해당 배열의 크기와 차원에 대한 설명자를 읽을지 여부를 선택할 수 있습니다. 설명자를 쓰려면 ArrayIsDynamic 매개 변수를 True로 설정합니다. 배열을 읽는 경우에는 배열이 쓰여진 방식을 일치시킬 필요가 있습니다. 설명자로 작성한 것이면 해당 설명자를 읽어야 합니다. 설명자를 사용하지 않으면 FileGet에 전달된 배열의 크기와 범위에 따라 읽을 내용이 결정됩니다.

    설명자는 배열 순위, 크기 및 각 순위에 대해 하한을 지정합니다. 길이는 2에 차원 수의 8배를 더한 값인 (2 + 8 * NumberOfDimensions)입니다. FileOpen 함수의 RecordLength 매개 변수로 지정한 레코드 길이는 배열 데이터와 배열 설명자를 쓰는 데 필요한 총 바이트 수보다 크거나 같아야 합니다. 예를 들어, 다음과 같이 배열을 선언하면 해당 배열을 디스크에 쓸 때 218바이트가 필요합니다.

    Dim MyArray(4,9) As Integer
    

    218바이트는 다음과 같이 나누어집니다.

    • 설명자에 18바이트: (2 + 8 * 2)

    • 데이터에 200바이트: (5 * 10 * 4)

  • 읽을 변수가 가변 길이 문자열이나 개체가 아닌 다른 형식의 변수인 경우 FileGet 함수는 변수 데이터만 읽습니다. FileOpen 함수의 RecordLength 절에 지정한 레코드 길이는 읽을 데이터의 길이보다 크거나 같아야 합니다.

  • FileGet은 구조체의 각 요소를 개별적으로 읽는 것처럼 구조체 요소를 읽지만 요소 사이를 채우지는 않습니다. 디스크에서 FilePut으로 작성한 사용자 정의 형식의 동적 배열 다음에는 설명자가 옵니다. 이 설명자의 길이는 2에 차원 수의 8배를 더한 값인 (2 + 8 * NumberOfDimensions)입니다. FileOpen 함수의 RecordLength 절에서 지정한 레코드 길이는 개별 요소를 읽는 데 필요한 총 바이트 수보다 크거나 같아야 합니다. 여기에는 배열과 배열의 설명자가 포함됩니다. VBFixedString 특성을 구조체의 문자열 필드에 적용하면 디스크에 쓸 때 문자열의 크기를 나타낼 수 있습니다.

Binary 모드

Binary 모드에서 연 파일의 경우 몇 가지 예외를 제외하고 Random 모드 규칙이 대부분 적용됩니다. Binary 모드에서 연 파일에 대한 다음 규칙은 Random 모드에 대한 규칙과 다릅니다.

  • FileOpen 함수의 RecordLength 절은 의미가 없습니다. FileGet은 레코드 사이를 채우지 않고 연속적으로 모든 변수를 디스크에서 읽습니다.

  • 구조체의 배열이 아닌 다른 배열의 경우 FileGet은 데이터만 읽습니다. 설명자는 읽지 않습니다.

  • FileGet은 구조체의 요소가 아닌 가변 길이 문자열을 2바이트 길이 설명자 없이 읽습니다. 읽은 바이트 수는 이미 문자열에 있는 문자 수와 같습니다.

    보안 정보:

    FileGet 함수를 사용하여 파일을 읽으려면 FileIOPermissionAccess 열거형의 Read 액세스가 필요합니다.

스마트 장치 개발자 참고 사항

이 함수는 지원되지 않습니다.

요구 사항

네임스페이스:Microsoft.VisualBasic

**모듈:**FileSystem

어셈블리:

참고 항목

참조

FileOpen 함수

FilePut 함수

Seek 함수

FileGetObject 함수

기타 리소스

Visual Basic에서 파일 읽기

Visual Basic에서 파일에 쓰기