FileSystem.FileGetObject(Int32, Object, Int64) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
열린 디스크 파일의 데이터를 변수로 읽어옵니다. My
기능은 파일 I/O 작업에서 FileGetObject
보다 더 나은 생산성 및 성능을 제공합니다. 자세한 내용은 FileSystem를 참조하세요.
public static void FileGetObject (int FileNumber, ref object Value, long RecordNumber = -1);
static member FileGetObject : int * obj * int64 -> unit
Public Sub FileGetObject (FileNumber As Integer, ByRef Value As Object, Optional RecordNumber As Long = -1)
매개 변수
- FileNumber
- Int32
필수 요소. 유효한 파일 번호입니다.
- Value
- Object
필수 요소. 데이터를 읽어오는 올바른 변수 이름입니다.
- RecordNumber
- Int64
선택 사항입니다. 읽기가 시작되는 레코드 번호(Random
모드 파일) 또는 바이트 번호(Binary
모드 파일)입니다.
예제
다음 예제에서는 레코드를 테스트 파일로 읽은 다음 검색합니다.
Dim c As Object = "test"
FileSystem.FileOpen(1, "test.dat", OpenMode.Binary)
FileSystem.FilePutObject(1, "ABCDEF")
FileSystem.Seek(1, 1)
FileSystem.FileGetObject(1, c)
MsgBox(c)
FileSystem.FileClose(1)
설명
함수는 FileGetObject
, , 등과 같은 Long
Integer
Short
다른 형식 대신 형식 Object
이 반환되는 경우 컴파일 시 모호성을 방지하기 위해 대신 FileGet
사용됩니다.
형식 FileGetObject
을 작성 Variant
하려는 경우 가 필요합니다. 확실하지 않은 경우 두 번째 매개 변수에 개체를 사용하는 경우 항상 및 FileGetObject
를 사용하는 FilePutObject
것이 좋습니다.
FileGetObject
는 및 Binary
모드에서 Random
만 유효합니다.
를 사용하여 FileGetObject
읽은 데이터는 일반적으로 로 FilePutObject
작성됩니다.
파일의 첫 번째 레코드 또는 바이트는 1위, 두 번째 레코드 또는 바이트는 위치 2 등에 있습니다. 를 생략 RecordNumber
FileGetObject
하면 마지막 또는 함수 뒤의 레코드 또는 바이트를 읽습니다FilePutObject
(또는 마지막 FileGetObject
Seek
함수가 가리켰습니다).
임의 모드
모드로 Random
열린 파일의 경우 다음 규칙이 적용됩니다.
읽는 데이터의 길이가 함수
FileGetObject
절FileOpen
에RecordLength
지정된 길이보다 작으면 레코드 길이 경계에서 후속 레코드를 읽습니다. 한 레코드의 끝과 다음 레코드의 시작 사이의 공간은 파일 버퍼의 기존 내용으로 채워집니다. 패딩 데이터의 양을 정확하게 확인할 수 없으므로 레코드 길이가 읽는 데이터의 길이와 일치하도록 하는 것이 좋습니다.읽는 변수가 문자열인 경우 기본적으로
FileGetObject
문자열 길이가 포함된 2 바이트 설명자를 읽은 다음 변수로 들어가는 데이터를 읽습니다. 따라서 함수 절에 지정된RecordLength
레코드 길이는 문자열의FileOpen
실제 길이보다 2바이트 이상 커야 합니다. Visual Basic 6.0 및 이전 버전은 고정 길이 문자열을 지원하며 파일을 읽을 때 길이 설명자가 작성되지 않습니다. 설명자 없이 문자열을 읽으려면 매개 변수에StringIsFixedLength
전달True
해야 하며 읽은 문자열은 올바른 길이여야 합니다.읽는 변수가 배열인 경우 함수의 매개 변수
FileOpen
에 지정된RecordLength
레코드 길이는 배열 데이터 및 배열 설명자를 작성하는 데 필요한 모든 바이트의 합계보다 크거나 같아야 합니다. 설명자는 배열의 순위, 크기 및 각 순위에 대한 하한을 지정합니다. 길이는 차원 수의 2배에 8배 더합니다. 2 + 8 * NumberOfDimensions.예를 들어 배열을 디스크에 쓸 때 다음 배열 선언에는 218바이트가 필요합니다.
Dim MyArray(4, 9) As Integer
218바이트는 설명자에 대해 18바이트(2 + 8 * 2) 및 데이터에 대해 100바이트(5 * 10 * 4)와 같이 분산됩니다.
FileGetObject
는 요소 사이에 패딩이 없다는 점을 제외하고 구조체의 요소를 개별적으로 읽는 것처럼 읽습니다. 디스크에서 사용자 정의 형식의 동적 배열(으로FilePutObject
작성됨)은 길이가 차원 수의 2배와 8배인 설명자 접두사로 접두사로 지정됩니다( 2 + 8 * NumberOfDimensions). 함수의RecordLength
절에FileOpen
지정된 레코드 길이는 배열 및 설명자를 포함하여 개별 요소를 읽는 데 필요한 모든 바이트의 합계보다 크거나 같아야 합니다. 클래스는 VBFixedStringAttribute 디스크에 쓸 때 문자열의 크기를 나타내기 위해 구조체의 문자열 필드에 적용할 수 있습니다.
이진 모드
모드로 Binary
열린 파일의 경우 다음 예외를 Random
제외하고 모든 규칙이 적용됩니다.
RecordLength
함수의FileOpen
절은 영향을 주지 않습니다.FileGetObject
는 연속적으로 디스크에서 모든 변수를 읽습니다. 즉, 레코드 간에 패딩이 없습니다.구조
FileGetObject
체의 배열이 아닌 배열의 경우 데이터만 읽습니다. 설명자를 읽지 않습니다.
FileGetObject
는 2 바이트 길이 설명자를 기대하지 않고 구조체의 요소가 아닌 가변 길이 문자열을 읽습니다. 읽기 바이트 수는 문자열에 이미 있는 문자 수와 같습니다.
중요
파일에서 읽을 때 파일 이름 확장명을 기반으로 파일 내용에 대한 결정을 내리지 마세요. 예를 들어 Form1.vb 라는 파일은 Visual Basic 원본 파일이 아닐 수 있습니다.
적용 대상
추가 정보
.NET