FileSystem.FilePutObject(Int32, Object, Int64) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
변수의 데이터를 디스크 파일에 씁니다. My
기능은 파일 I/O 작업에서 FilePutObject
보다 더 나은 생산성 및 성능을 제공합니다. 자세한 내용은 FileSystem를 참조하세요.
public static void FilePutObject (int FileNumber, object Value, long RecordNumber = -1);
static member FilePutObject : int * obj * int64 -> unit
Public Sub FilePutObject (FileNumber As Integer, Value As Object, Optional RecordNumber As Long = -1)
매개 변수
- FileNumber
- Int32
필수 요소. 유효한 파일 번호입니다.
- Value
- Object
필수 요소. 디스크에 쓴 데이터를 포함하는 유효한 변수 이름입니다.
- RecordNumber
- Int64
선택 사항입니다. 쓰기를 시작할 레코드 번호(Random
모드 파일) 또는 바이트 숫자(Binary
모드 파일)입니다.
예제
이 예제에서는 함수를 FilePutObject
사용하여 파일에 문자열을 씁니다.
Sub WriteData()
Dim text As String = "test"
FileOpen(1, "test.bin", OpenMode.Binary)
FilePutObject(1, text)
FileClose(1)
End Sub
설명
함수는 FilePutObject
, , Short
등과 같은 Long
Integer
다른 형식 대신 형식 Object
이 전달되는 경우 컴파일 시 모호성을 방지하기 위해 대신 FilePut
사용됩니다.
FilePutObject
는 개체를 설명하는 설명자를 작성하고 읽습니다. 형식 FilePutObject
을 작성 Variant
하려는 경우 가 필요합니다. 확실하지 않은 경우 두 번째 매개 변수에 개체를 사용하는 경우 항상 및 FileGetObject
를 사용하는 FilePutObject
것이 좋습니다.
FilePutObject
는 및 Binary
모드에서 Random
만 유효합니다.
FilePutObject
로 작성된 데이터는 일반적으로 FileGetObject
을 사용하여 파일에서 읽습니다.
파일의 첫 번째 레코드 또는 바이트는 1위, 두 번째 레코드 또는 바이트는 위치 2 등에 있습니다. 를 생략 RecordNumber
FilePutObject
하면 마지막 또는 함수(또는 마지막 FileGetObject
FilePutObject
함수가 가리키는 Seek
레코드 또는 바이트) 다음에 다음 레코드 또는 바이트를 씁니다.
인수는 StringIsFixedLength
함수가 문자열을 변수 또는 고정 길이로 해석하는지 여부를 제어합니다. FilePutObject
는 인수 True
가 인 경우 길이 설명자를 작성하지 않습니다. 에서 FilePutObject
를 사용하는 StringIsFixedLength
= True
경우 와 FileGetObject
동일한 작업을 수행해야 하며 문자열이 예상되는 길이로 초기화되었는지도 확인해야 합니다.
임의 모드
모드로 Random
열린 파일의 경우 다음 규칙이 적용됩니다.
기록되는 데이터의 길이가 함수
FilePutObject
절FileOpen
에RecordLength
지정된 길이보다 작으면 레코드 길이 경계에 후속 레코드를 씁니다. 한 레코드의 끝과 다음 레코드의 시작 사이의 공간은 파일 버퍼의 기존 내용으로 채워집니다. 패딩 데이터의 양을 정확하게 확인할 수 없으므로 일반적으로 레코드 길이가 기록되는 데이터의 길이와 일치하도록 하는 것이 좋습니다. 기록되는 데이터의 길이가 함수 절FileOpen
에RecordLength
지정된 길이보다 크면 예외가 throw됩니다.작성 중인 변수가 숫자 형식
FilePutObject
을 포함하는 개체인 경우 개체의 를 식별하는VarType
2바이트를 쓴 다음 변수를 씁니다. 예를 들어 정수가 포함된 개체를 작성할 때 6바이트를 씁니다. 즉,FilePutObject
개체를 (Integer
)로VarType(3)
식별하는 바이트 2바이트와 데이터를 포함하는 4바이트를 씁니다. 함수의RecordLength
매개 변수에FileOpen
지정된 레코드 길이는 변수를 저장하는 데 필요한 실제 바이트 수보다 2바이트 이상 커야 합니다.작성 중인 변수가 문자열
FilePutObject
을 포함하는 개체인 경우 개체의 를 식별하는VarType(8)
2 바이트 설명자, 문자열의 길이를 나타내는 2 바이트 설명자를 쓴 다음 문자열 데이터를 씁니다. 함수의RecordLength
매개 변수FileOpen
에 지정된 레코드 길이는 문자열의 실제 길이보다 4바이트 이상 커야 합니다. 설명자 없이 문자열을 배치하려면 매개 변수에StringIsFixedLength
전달True
해야 하며 읽은 문자열은 올바른 길이여야 합니다.작성 중인 변수가 배열인 경우 함수의 절에
FileOpen
지정된RecordLength
레코드 길이는 배열 데이터 및 배열 설명자를 작성하는 데 필요한 모든 바이트의 합계보다 크거나 같아야 합니다. 설명자는 배열의 순위, 크기 및 각 순위에 대한 하한을 지정합니다. 길이는 차원 수의 2배에 8배 더합니다(2 + 8 * NumberOfDimensions).
이진 모드
모드로 Binary
열린 파일의 경우 다음을 Random
제외한 모든 모드 규칙이 적용됩니다.
RecordLength
함수의FileOpen
절은 영향을 주지 않습니다.FilePutObject
는 레코드 간에 패딩하지 않고 모든 변수를 연속적으로 디스크에 씁니다.
적용 대상
추가 정보
.NET