FileSystem.FilePutObject(Int32, Object, Int64) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
変数の内容をディスク上のファイルに書き込みます。 My
機能を使用すると、FilePutObject
よりもファイル I/O 処理の生産性とパフォーマンスが向上します。 詳細については、「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
、などLong
Integer
Short
、別の型ではなくFilePut
型Object
が渡された場合に、コンパイル時にあいまいさを回避するために ではなく 使用されます。
FilePutObject
は、オブジェクトを記述する記述子を書き込み、読み取ります。 型を書き出 Variant
す場合は、 FilePutObject
が必要です。 2 番目のパラメーターに オブジェクトを使用している場合は、常に と FileGetObject
を使用FilePutObject
することをお勧めします。
FilePutObject
は と Binary
モードでのみRandom
有効です。
FilePutObject
を使用して書き込まれたデータは通常、FileGetObject
を使用してファイルから読み込まれます。
ファイル内の最初のレコードまたはバイトは 1 番目の位置にあり、2 番目のレコードまたはバイトは 2 番目の位置にあります。 を省略RecordNumber
FilePutObject
すると、最後または関数の後の次のレコードまたはバイト (または最後FileGetObject
FilePutObject
Seek
の関数が指すレコードまたはバイト) が書き込まれます。
引数は StringIsFixedLength
、関数が文字列を可変長または固定長として解釈するかどうかを制御します。 FilePutObject
引数が の場合、長さ記述子は True
書き込まれません。 で FilePutObject
を使用StringIsFixedLength
= True
する場合は、 でFileGetObject
同じ操作を行う必要があります。また、文字列が予想される長さに初期化されていることを確認する必要もあります。
ランダム モード
モードで開かれたファイルの Random
場合は、次の規則が適用されます。
書き込まれるデータの長さが関数の 句で
RecordLength
指定された長さより短い場合、FilePutObject
後続のFileOpen
レコードはレコード長境界に書き込まれます。 1 つのレコードの末尾と次のレコードの先頭の間のスペースには、ファイル バッファーの既存の内容が埋め込まれます。 埋め込みデータの量を正確に決定できないため、通常、レコードの長さを書き込むデータの長さと一致することをお勧めします。 書き込まれるデータの長さが関数の 句FileOpen
でRecordLength
指定された長さを超える場合は、例外がスローされます。書き込まれる変数が数値型を含むオブジェクトの場合は、
FilePutObject
オブジェクトの を識別するVarType
2 バイトを書き込み、変数を書き込みます。 たとえば、整数を含むオブジェクトを書き込む場合、FilePutObject
6 バイト (オブジェクトを (Integer
) としてVarType(3)
識別する 2 バイトと、データを含む 4 バイトを書き込みます。 関数の パラメーターでRecordLength
指定されるレコード長は、変数のFileOpen
格納に必要な実際のバイト数より少なくとも 2 バイト大きくする必要があります。書き込まれる変数が文字列を含むオブジェクトの場合は、
FilePutObject
オブジェクトの を識別するVarType(8)
2 バイト記述子、文字列の長さを示す 2 バイト記述子を書き込み、文字列データを書き込みます。 関数の パラメーターでRecordLength
指定されるレコード長は、文字列のFileOpen
実際の長さより少なくとも 4 バイト大きくする必要があります。 記述子を使用せずに文字列を配置する場合は、 パラメーターにを渡True
すStringIsFixedLength
必要があります。読み取り先の文字列は正しい長さである必要があります。書き込まれる変数が配列の場合、関数の 句で
RecordLength
FileOpen
指定されるレコード長は、配列データと配列記述子の書き込みに必要なすべてのバイトの合計以上である必要があります。 記述子は、配列のランク、サイズ、各ランクの下限を指定します。 その長さは、次元数の 8 倍に 2 を加えた値です (2 + 8 * NumberOfDimensions)。
バイナリ モード
モードで開かれたファイルの Binary
場合、次を Random
除くすべてのモード規則が適用されます。
RecordLength
関数のFileOpen
句は無効です。FilePutObject
は、すべての変数を連続してディスクに書き込みます。つまり、レコード間の埋め込みは行われません。
適用対象
こちらもご覧ください
.NET