FileSystem.FilePutObject(Int32, Object, Int64) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menulis data dari variabel ke file disk. Fitur ini My
memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePutObject
. Untuk informasi selengkapnya, lihat 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)
Parameter
- FileNumber
- Int32
Wajib diisi. Nomor file apa pun yang valid.
- Value
- Object
Wajib diisi. Nama variabel valid yang berisi data yang ditulis ke disk.
- RecordNumber
- Int64
Opsional. Nomor rekaman (Random
file mode) atau nomor byte (Binary
file mode) di mana penulisan dimulai.
Contoh
Contoh ini menggunakan FilePutObject
fungsi untuk menulis string ke file.
Sub WriteData()
Dim text As String = "test"
FileOpen(1, "test.bin", OpenMode.Binary)
FilePutObject(1, text)
FileClose(1)
End Sub
Keterangan
Fungsi FilePutObject
ini digunakan alih-alih FilePut
untuk menghindari ambiguitas pada waktu kompilasi jika jenis Object
diteruskan alih-alih jenis lain, seperti , , Long
Short
, dan sebagainyaInteger
.
FilePutObject
menulis dan membaca deskriptor yang menjelaskan objek . Jika Anda ingin menuliskan jenisnya Variant
, FilePutObject
diperlukan. Jika ragu, jika Anda menggunakan objek untuk parameter kedua, kami sarankan Anda selalu menggunakan FilePutObject
dan FileGetObject
.
FilePutObject
hanya valid dalam Random
mode dan Binary
.
Data yang ditulis dengan FilePutObject
biasanya dibaca dari file dengan menggunakan FileGetObject
.
Rekaman atau byte pertama dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber
, FilePutObject
tulis rekaman atau byte berikutnya setelah fungsi atau FilePutObject
terakhir FileGetObject
(atau rekaman atau byte yang ditujukkan oleh fungsi terakhirSeek
).
Argumen StringIsFixedLength
mengontrol apakah fungsi menginterpretasikan string sebagai variabel atau panjang tetap. FilePutObject
tidak menulis deskriptor panjang ketika argumen adalah True
. Jika Anda menggunakan StringIsFixedLength
= True
dengan FilePutObject
, Anda harus melakukan hal yang sama dengan FileGetObject
, dan Anda juga harus memastikan bahwa string diinisialisasi sesuai panjang yang diharapkan.
Mode Acak
Untuk file yang dibuka dalam Random
mode, aturan berikut berlaku:
Jika panjang data yang ditulis kurang dari panjang yang ditentukan dalam
RecordLength
klausulFileOpen
fungsi,FilePutObject
tulis rekaman berikutnya pada batas panjang rekaman. Ruang antara akhir satu rekaman dan awal rekaman berikutnya dilapisi dengan konten buffer file yang ada. Karena jumlah data padding tidak dapat ditentukan dengan tepat, umumnya merupakan ide yang baik untuk memiliki panjang rekaman yang cocok dengan panjang data yang ditulis. Jika panjang data yang ditulis lebih besar dari panjang yang ditentukan dalamRecordLength
klausulFileOpen
fungsi, pengecualian akan dilemparkan.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePutObject
menulis dua byte yang mengidentifikasiVarType
objek dan kemudian menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutObject
tulis enam byte: dua byte yang mengidentifikasi objek sebagaiVarType(3)
(Integer
) dan empat byte yang berisi data. Panjang rekaman yang ditentukan olehRecordLength
parameter dalamFileOpen
fungsi harus setidaknya dua byte lebih besar dari jumlah byte aktual yang diperlukan untuk menyimpan variabel.Jika variabel yang ditulis adalah objek yang berisi string,
FilePutObject
menulis deskriptor dua byte yang mengidentifikasiVarType(8)
objek, deskriptor dua byte yang menunjukkan panjang string, lalu menulis data string. Panjang rekaman yang ditentukan olehRecordLength
parameter dalamFileOpen
fungsi harus setidaknya empat byte yang lebih besar dari panjang string yang sebenarnya. Jika Anda ingin menempatkan string tanpa deskriptor, Anda harus meneruskanTrue
keStringIsFixedLength
parameter , dan string yang Anda baca harus memiliki panjang yang benar.Jika variabel yang ditulis adalah array, maka panjang rekaman yang ditentukan oleh
RecordLength
klausul dalamFileOpen
fungsi harus lebih besar dari atau sama dengan jumlah semua byte yang diperlukan untuk menulis data array dan deskriptor array. Deskriptor menentukan peringkat array, ukuran, dan batas bawah untuk setiap peringkat. Panjangnya sama dengan 2 ditambah 8 kali jumlah dimensi: (2 + 8 * NumberOfDimensions).
Mode Biner
Untuk file yang dibuka dalam Binary
mode, semua Random
aturan mode berlaku, kecuali:
- Klausa
RecordLength
dalamFileOpen
fungsi tidak berpengaruh.FilePutObject
menulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.