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 .
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")]
public static void FilePutObject(int FileNumber, object Value, long RecordNumber = -1);
public static void FilePutObject(int FileNumber, object Value, long RecordNumber = -1);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")>]
static member FilePutObject : int * obj * int64 -> unit
static member FilePutObject : int * obj * int64 -> unit
Public Sub FilePutObject (FileNumber As Integer, Value As Object, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Nomor file apa pun yang valid.
- Value
- Object
Required. Nama variabel valid yang berisi data yang ditulis ke disk.
- RecordNumber
- Int64
Optional. Rekam nomor (Random file mode) atau nomor byte (Binary file mode) di mana penulisan dimulai.
- Atribut
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 ini FilePutObject digunakan alih-alih FilePut untuk menghindari ambiguitas pada waktu kompilasi jika jenis Object diteruskan alih-alih jenis lain, seperti , Integer, Long, dan sebagainyaShort.
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 berlaku dalam Random mode dan Binary .
Data yang ditulis dengan FilePutObject biasanya dibaca dari file dengan menggunakan FileGetObject.
Rekaman pertama atau byte dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber, FilePutObject menulis rekaman atau byte berikutnya setelah fungsi atau FileGetObject terakhir FilePutObject (atau rekaman atau byte yang diajuk 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 ke 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
RecordLengthklausulFileOpenfungsi,FilePutObjectmenulis rekaman berikutnya pada batas panjang rekaman. Spasi antara akhir satu rekaman dan awal rekaman berikutnya diisi dengan konten buffer file yang ada. Karena jumlah data padding tidak dapat ditentukan dengan tepat, umumnya merupakan ide yang baik untuk memiliki panjang catatan yang cocok dengan panjang data yang ditulis. Jika panjang data yang ditulis lebih besar dari panjang yang ditentukan dalamRecordLengthklausulFileOpenfungsi, pengecualian akan dilemparkan.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePutObjecttulis dua byte yang mengidentifikasiVarTypeobjek lalu menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutObjectmenulis enam byte: dua byte yang mengidentifikasi objek sebagaiVarType(3)(Integer) dan empat byte yang berisi data. Panjang rekaman yang ditentukan olehRecordLengthparameter dalamFileOpenfungsi harus setidaknya dua byte yang lebih besar dari jumlah byte aktual yang diperlukan untuk menyimpan variabel.Jika variabel yang ditulis adalah objek yang berisi string,
FilePutObjectmenulis deskriptor dua byte yang mengidentifikasiVarType(8)objek, deskriptor dua byte yang menunjukkan panjang string, lalu menulis data string. Panjang rekaman yang ditentukan olehRecordLengthparameter dalamFileOpenfungsi harus setidaknya empat byte yang lebih besar dari panjang string yang sebenarnya. Jika Anda ingin menempatkan string tanpa deskriptor, Anda harus meneruskanTruekeStringIsFixedLengthparameter , dan string yang Anda baca harus memiliki panjang yang benar.Jika variabel yang ditulis adalah array, maka panjang catatan yang ditentukan oleh
RecordLengthklausul dalamFileOpenfungsi 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
RecordLengthdalamFileOpenfungsi tidak berpengaruh.FilePutObjectmenulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.