FileSystem.FilePut 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 FilePut. F Untuk informasi selengkapnya, lihat FileSystem.
Overload
| Nama | Deskripsi |
|---|---|
| FilePut(Int32, Int64, Int64) |
Menulis data dari variabel ke file disk. Fitur ini |
| FilePut(Int32, String, Int64, Boolean) |
Menulis data dari variabel ke file disk. Fitur ini |
| FilePut(Object, Object, Object) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Menulis data dari variabel ke file disk. Fitur ini |
| FilePut(Int32, ValueType, Int64) |
Menulis data dari variabel ke file disk. Fitur ini |
| FilePut(Int32, Single, Int64) |
Menulis data dari variabel ke file disk. Fitur ini |
| FilePut(Int32, Int32, Int64) |
Menulis data dari variabel ke file disk. Fitur ini |
| FilePut(Int32, Array, Int64, Boolean, Boolean) |
Menulis data dari variabel ke file disk. Fitur ini |
| FilePut(Int32, Double, Int64) |
Menulis data dari variabel ke file disk. Fitur ini |
| FilePut(Int32, Decimal, Int64) |
Menulis data dari variabel ke file disk. Fitur ini |
| FilePut(Int32, DateTime, Int64) |
Menulis data dari variabel ke file disk. Fitur ini |
| FilePut(Int32, Char, Int64) |
Menulis data dari variabel ke file disk. Fitur ini |
| FilePut(Int32, Byte, Int64) |
Menulis data dari variabel ke file disk. Fitur ini |
| FilePut(Int32, Boolean, Int64) |
Menulis data dari variabel ke file disk. Fitur ini |
| FilePut(Int32, Int16, Int64) |
Menulis data dari variabel ke file disk. Fitur ini |
FilePut(Int32, Int64, Int64)
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
Menulis data dari variabel ke file disk. Fitur ini My memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePut. Untuk informasi selengkapnya, lihat FileSystem .
public static void FilePut(int FileNumber, long Value, long RecordNumber = -1);
static member FilePut : int * int64 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Long, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Nomor file apa pun yang valid.
- Value
- Int64
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.
Pengecualian
RecordNumber
< 1 dan tidak sama dengan -1.
Mode file tidak valid.
Contoh
Contoh ini menggunakan FilePut fungsi untuk menulis data ke file. Lima rekaman struktur Person ditulis ke file.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Keterangan
FilePut hanya berlaku dalam Random mode dan Binary .
Data yang ditulis dengan FilePut biasanya dibaca dari file dengan menggunakan FileGet.
Rekaman pertama atau byte dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber, rekaman atau byte berikutnya setelah fungsi atau terakhir FileGet atau FilePut ditujukkan oleh fungsi terakhir Seek ditulis.
Argumen StringIsFixedLength mengontrol apakah fungsi menginterpretasikan string sebagai variabel atau panjang tetap.
FilePut tidak menulis deskriptor panjang ketika argumen adalah True. Jika Anda menggunakan StringIsFixedLength = True dengan FilePut, Anda harus melakukan hal yang sama dengan FileGet, dan Anda 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,FilePutmenulis 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 kepastian apa pun, 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 string,
FilePuttulis deskriptor dua byte yang berisi panjang string, lalu menulis data yang masuk ke variabel. Oleh karena itu, panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus setidaknya dua byte yang lebih besar dari panjang string yang sebenarnya.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePuttulis dua byte yang mengidentifikasiVarTypeobjek lalu menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutmenulis 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,
FilePutmenulis 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, Anda memiliki pilihan apakah akan menulis deskriptor untuk ukuran dan dimensi array atau tidak. Visual Basic 6.0 dan versi yang lebih lama menulis deskriptor file untuk array dinamis tetapi tidak untuk array ukuran tetap. Visual Basic 2005 default untuk tidak menulis deskriptor. Untuk menulis deskriptor, atur parameter ke
ArrayIsDynamicTrue. Saat menulis array, Anda harus mencocokkan cara array akan dibaca; jika akan dibaca dengan deskriptor, Anda harus menulis deskriptor. Deskriptor menentukan peringkat array, ukuran, dan batas bawah untuk setiap peringkat. Panjangnya sama dengan 2 ditambah 8 kali jumlah dimensi: (2 + 8 * NumberOfDimensions). Panjang rekaman yang ditentukan olehRecordLengthklausa dalamFileOpenfungsi harus lebih besar dari atau sama dengan jumlah semua byte yang diperlukan untuk menulis data array dan deskriptor array. Misalnya, deklarasi array berikut memerlukan 218 byte ketika array ditulis ke disk.Dim MyArray(4, 9) As IntegerJika variabel yang ditulis adalah jenis variabel lain (bukan string panjang variabel atau objek),
FilePuthanya menulis data variabel. Panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus lebih besar dari atau sama dengan panjang data yang ditulis.FilePutmenulis elemen struktur seolah-olah masing-masing ditulis secara individual, kecuali tidak ada padding antar elemen. AtributVBFixedStringdapat diterapkan ke bidang string dalam struktur untuk menunjukkan ukuran string saat ditulis ke disk.Note
Bidang string yang memiliki lebih banyak byte daripada yang ditentukan oleh
VBFixedStringatribut dipotong saat ditulis ke disk,
Mode Biner
Untuk file yang dibuka dalam Binary mode, sebagian besar Random aturan mode berlaku, dengan beberapa pengecualian. Aturan berikut untuk file yang dibuka dalam Binary mode berbeda dari aturan untuk Random mode:
Klausa
RecordLengthdalamFileOpenfungsi tidak berpengaruh.FilePutmenulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.Untuk array apa pun selain array dalam struktur,
FilePuthanya menulis data. Tidak ada deskriptor yang ditulis.FilePutmenulis string panjang variabel yang bukan elemen struktur tanpa deskriptor panjang dua byte. Jumlah byte yang ditulis sama dengan jumlah karakter dalam string. Misalnya, pernyataan berikut menulis 11 byte ke nomor file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Menulis ke file dengan menggunakan
FilePutfungsi memerlukanWriteakses dari FileIOPermissionAccess enumerasi.
Lihat juga
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing ke File dalam Visual Basic
Berlaku untuk
FilePut(Int32, String, Int64, Boolean)
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
Menulis data dari variabel ke file disk. Fitur ini My memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePut. Untuk informasi selengkapnya, lihat FileSystem .
public static void FilePut(int FileNumber, string Value, long RecordNumber = -1, bool StringIsFixedLength = false);
static member FilePut : int * string * int64 * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As String, Optional RecordNumber As Long = -1, Optional StringIsFixedLength As Boolean = false)
Parameter
- FileNumber
- Int32
Required. Nomor file apa pun yang valid.
- Value
- String
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.
- StringIsFixedLength
- Boolean
Optional. Hanya berlaku saat menulis string. Menentukan apakah akan menulis deskriptor panjang string dua byte untuk string ke file. Defaultnya adalah False.
Pengecualian
RecordNumber
< 1 dan tidak sama dengan -1.
Mode file tidak valid.
Contoh
Contoh ini menggunakan FilePut fungsi untuk menulis data ke file. Lima rekaman struktur Person ditulis ke file.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Keterangan
FilePut hanya berlaku dalam Random mode dan Binary .
Data yang ditulis dengan FilePut biasanya dibaca dari file dengan menggunakan FileGet.
Rekaman pertama atau byte dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber, rekaman atau byte berikutnya setelah fungsi atau terakhir FileGet atau FilePut ditujukkan oleh fungsi terakhir Seek ditulis.
Argumen StringIsFixedLength mengontrol apakah fungsi menginterpretasikan string sebagai variabel atau panjang tetap.
FilePut tidak menulis deskriptor panjang ketika argumen adalah True. Jika Anda menggunakan StringIsFixedLength = True dengan FilePut, Anda harus melakukan hal yang sama dengan FileGet, dan Anda 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,FilePutmenulis 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 kepastian apa pun, 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 string,
FilePuttulis deskriptor dua byte yang berisi panjang string, lalu menulis data yang masuk ke variabel. Oleh karena itu, panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus setidaknya dua byte yang lebih besar dari panjang string yang sebenarnya.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePuttulis dua byte yang mengidentifikasiVarTypeobjek lalu menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutmenulis 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,
FilePutmenulis 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, Anda memiliki pilihan apakah akan menulis deskriptor untuk ukuran dan dimensi array atau tidak. Visual Basic 6.0 dan versi yang lebih lama menulis deskriptor file untuk array dinamis tetapi tidak untuk array ukuran tetap. Visual Basic 2005 default untuk tidak menulis deskriptor. Untuk menulis deskriptor, atur parameter ke
ArrayIsDynamicTrue. Saat menulis array, Anda harus mencocokkan cara array akan dibaca; jika akan dibaca dengan deskriptor, Anda harus menulis deskriptor. Deskriptor menentukan peringkat array, ukuran, dan batas bawah untuk setiap peringkat. Panjangnya sama dengan 2 ditambah 8 kali jumlah dimensi: (2 + 8 * NumberOfDimensions). Panjang rekaman yang ditentukan olehRecordLengthklausa dalamFileOpenfungsi harus lebih besar dari atau sama dengan jumlah semua byte yang diperlukan untuk menulis data array dan deskriptor array. Misalnya, deklarasi array berikut memerlukan 218 byte ketika array ditulis ke disk.Dim MyArray(4, 9) As IntegerJika variabel yang ditulis adalah jenis variabel lain (bukan string panjang variabel atau objek),
FilePuthanya menulis data variabel. Panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus lebih besar dari atau sama dengan panjang data yang ditulis.FilePutmenulis elemen struktur seolah-olah masing-masing ditulis secara individual, kecuali tidak ada padding antar elemen. AtributVBFixedStringdapat diterapkan ke bidang string dalam struktur untuk menunjukkan ukuran string saat ditulis ke disk.Note
Bidang string yang memiliki lebih banyak byte daripada yang ditentukan oleh
VBFixedStringatribut dipotong saat ditulis ke disk,
Mode Biner
Untuk file yang dibuka dalam Binary mode, sebagian besar Random aturan mode berlaku, dengan beberapa pengecualian. Aturan berikut untuk file yang dibuka dalam Binary mode berbeda dari aturan untuk Random mode:
Klausa
RecordLengthdalamFileOpenfungsi tidak berpengaruh.FilePutmenulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.Untuk array apa pun selain array dalam struktur,
FilePuthanya menulis data. Tidak ada deskriptor yang ditulis.FilePutmenulis string panjang variabel yang bukan elemen struktur tanpa deskriptor panjang dua byte. Jumlah byte yang ditulis sama dengan jumlah karakter dalam string. Misalnya, pernyataan berikut menulis 11 byte ke nomor file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Menulis ke file dengan menggunakan
FilePutfungsi memerlukanWriteakses dari FileIOPermissionAccess enumerasi.
Lihat juga
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing ke File dalam Visual Basic
Berlaku untuk
FilePut(Object, Object, Object)
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
Perhatian
FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.
Perhatian
This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202
Perhatian
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
Menulis data dari variabel ke file disk. Fitur ini My memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePut. Untuk informasi selengkapnya, lihat FileSystem .
public:
static void FilePut(System::Object ^ FileNumber, System::Object ^ Value, System::Object ^ RecordNumber);
[System.Obsolete("FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.")]
public static void FilePut(object FileNumber, object Value, object RecordNumber);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut(object FileNumber, object Value, object RecordNumber);
[System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")]
public static void FilePut(object FileNumber, object Value, object RecordNumber = -1);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut(object FileNumber, object Value, object RecordNumber = -1);
[<System.Obsolete("FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")>]
static member FilePut : obj * obj * obj -> unit
Public Sub FilePut (FileNumber As Object, Value As Object, RecordNumber As Object)
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)
Parameter
- FileNumber
- Object
Required. Nomor file apa pun yang valid.
- Value
- Object
Required. Nama variabel valid yang berisi data yang ditulis ke disk.
- RecordNumber
- Object
Optional. Rekam nomor (Random file mode) atau nomor byte (Binary file mode) di mana penulisan dimulai.
- Atribut
Pengecualian
RecordNumber
< 1 dan tidak sama dengan -1.
Mode file tidak valid.
Lihat juga
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing ke File dalam Visual Basic
Berlaku untuk
FilePut(Int32, ValueType, Int64)
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
Menulis data dari variabel ke file disk. Fitur ini My memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePut. 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 FilePut(int FileNumber, ValueType Value, long RecordNumber = -1);
public static void FilePut(int FileNumber, ValueType Value, long RecordNumber = -1);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")>]
static member FilePut : int * ValueType * int64 -> unit
static member FilePut : int * ValueType * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As ValueType, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Nomor file apa pun yang valid.
- Value
- ValueType
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
Pengecualian
RecordNumber
< 1 dan tidak sama dengan -1.
Mode file tidak valid.
Contoh
Contoh ini menggunakan FilePut fungsi untuk menulis data ke file. Lima rekaman struktur Person ditulis ke file.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Keterangan
FilePut hanya berlaku dalam Random mode dan Binary .
Data yang ditulis dengan FilePut biasanya dibaca dari file dengan menggunakan FileGet.
Rekaman pertama atau byte dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber, rekaman atau byte berikutnya setelah fungsi atau terakhir FileGet atau FilePut ditujukkan oleh fungsi terakhir Seek ditulis.
Argumen StringIsFixedLength mengontrol apakah fungsi menginterpretasikan string sebagai variabel atau panjang tetap.
FilePut tidak menulis deskriptor panjang ketika argumen adalah True. Jika Anda menggunakan StringIsFixedLength = True dengan FilePut, Anda harus melakukan hal yang sama dengan FileGet, dan Anda 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,FilePutmenulis 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 kepastian apa pun, 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 string,
FilePuttulis deskriptor dua byte yang berisi panjang string, lalu menulis data yang masuk ke variabel. Oleh karena itu, panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus setidaknya dua byte yang lebih besar dari panjang string yang sebenarnya.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePuttulis dua byte yang mengidentifikasiVarTypeobjek lalu menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutmenulis 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,
FilePutmenulis 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, Anda memiliki pilihan apakah akan menulis deskriptor untuk ukuran dan dimensi array atau tidak. Visual Basic 6.0 dan versi yang lebih lama menulis deskriptor file untuk array dinamis tetapi tidak untuk array ukuran tetap. Visual Basic 2005 default untuk tidak menulis deskriptor. Untuk menulis deskriptor, atur parameter ke
ArrayIsDynamicTrue. Saat menulis array, Anda harus mencocokkan cara array akan dibaca; jika akan dibaca dengan deskriptor, Anda harus menulis deskriptor. Deskriptor menentukan peringkat array, ukuran, dan batas bawah untuk setiap peringkat. Panjangnya sama dengan 2 ditambah 8 kali jumlah dimensi: (2 + 8 * NumberOfDimensions). Panjang rekaman yang ditentukan olehRecordLengthklausa dalamFileOpenfungsi harus lebih besar dari atau sama dengan jumlah semua byte yang diperlukan untuk menulis data array dan deskriptor array. Misalnya, deklarasi array berikut memerlukan 218 byte ketika array ditulis ke disk.Dim MyArray(4, 9) As IntegerJika variabel yang ditulis adalah jenis variabel lain (bukan string panjang variabel atau objek),
FilePuthanya menulis data variabel. Panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus lebih besar dari atau sama dengan panjang data yang ditulis.FilePutmenulis elemen struktur seolah-olah masing-masing ditulis secara individual, kecuali tidak ada padding antar elemen. AtributVBFixedStringdapat diterapkan ke bidang string dalam struktur untuk menunjukkan ukuran string saat ditulis ke disk.Note
Bidang string yang memiliki lebih banyak byte daripada yang ditentukan oleh
VBFixedStringatribut dipotong saat ditulis ke disk,
Mode Biner
Untuk file yang dibuka dalam Binary mode, sebagian besar Random aturan mode berlaku, dengan beberapa pengecualian. Aturan berikut untuk file yang dibuka dalam Binary mode berbeda dari aturan untuk Random mode:
Klausa
RecordLengthdalamFileOpenfungsi tidak berpengaruh.FilePutmenulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.Untuk array apa pun selain array dalam struktur,
FilePuthanya menulis data. Tidak ada deskriptor yang ditulis.FilePutmenulis string panjang variabel yang bukan elemen struktur tanpa deskriptor panjang dua byte. Jumlah byte yang ditulis sama dengan jumlah karakter dalam string. Misalnya, pernyataan berikut menulis 11 byte ke nomor file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Menulis ke file dengan menggunakan
FilePutfungsi memerlukanWriteakses dari FileIOPermissionAccess enumerasi.
Lihat juga
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing ke File dalam Visual Basic
Berlaku untuk
FilePut(Int32, Single, Int64)
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
Menulis data dari variabel ke file disk. Fitur ini My memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePut. Untuk informasi selengkapnya, lihat FileSystem .
public static void FilePut(int FileNumber, float Value, long RecordNumber = -1);
static member FilePut : int * single * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Single, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Nomor file apa pun yang valid.
- Value
- Single
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.
Pengecualian
RecordNumber
< 1 dan tidak sama dengan -1.
Mode file tidak valid.
Contoh
Contoh ini menggunakan FilePut fungsi untuk menulis data ke file. Lima rekaman struktur Person ditulis ke file.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Keterangan
FilePut hanya berlaku dalam Random mode dan Binary .
Data yang ditulis dengan FilePut biasanya dibaca dari file dengan menggunakan FileGet.
Rekaman pertama atau byte dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber, rekaman atau byte berikutnya setelah fungsi atau terakhir FileGet atau FilePut ditujukkan oleh fungsi terakhir Seek ditulis.
Argumen StringIsFixedLength mengontrol apakah fungsi menginterpretasikan string sebagai variabel atau panjang tetap.
FilePut tidak menulis deskriptor panjang ketika argumen adalah True. Jika Anda menggunakan StringIsFixedLength = True dengan FilePut, Anda harus melakukan hal yang sama dengan FileGet, dan Anda 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,FilePutmenulis 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 kepastian apa pun, 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 string,
FilePuttulis deskriptor dua byte yang berisi panjang string, lalu menulis data yang masuk ke variabel. Oleh karena itu, panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus setidaknya dua byte yang lebih besar dari panjang string yang sebenarnya.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePuttulis dua byte yang mengidentifikasiVarTypeobjek lalu menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutmenulis 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,
FilePutmenulis 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, Anda memiliki pilihan apakah akan menulis deskriptor untuk ukuran dan dimensi array atau tidak. Visual Basic 6.0 dan versi yang lebih lama menulis deskriptor file untuk array dinamis tetapi tidak untuk array ukuran tetap. Visual Basic 2005 default untuk tidak menulis deskriptor. Untuk menulis deskriptor, atur parameter ke
ArrayIsDynamicTrue. Saat menulis array, Anda harus mencocokkan cara array akan dibaca; jika akan dibaca dengan deskriptor, Anda harus menulis deskriptor. Deskriptor menentukan peringkat array, ukuran, dan batas bawah untuk setiap peringkat. Panjangnya sama dengan 2 ditambah 8 kali jumlah dimensi: (2 + 8 * NumberOfDimensions). Panjang rekaman yang ditentukan olehRecordLengthklausa dalamFileOpenfungsi harus lebih besar dari atau sama dengan jumlah semua byte yang diperlukan untuk menulis data array dan deskriptor array. Misalnya, deklarasi array berikut memerlukan 218 byte ketika array ditulis ke disk.Dim MyArray(4, 9) As IntegerJika variabel yang ditulis adalah jenis variabel lain (bukan string panjang variabel atau objek),
FilePuthanya menulis data variabel. Panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus lebih besar dari atau sama dengan panjang data yang ditulis.FilePutmenulis elemen struktur seolah-olah masing-masing ditulis secara individual, kecuali tidak ada padding antar elemen. AtributVBFixedStringdapat diterapkan ke bidang string dalam struktur untuk menunjukkan ukuran string saat ditulis ke disk.Note
Bidang string yang memiliki lebih banyak byte daripada yang ditentukan oleh
VBFixedStringatribut dipotong saat ditulis ke disk,
Mode Biner
Untuk file yang dibuka dalam Binary mode, sebagian besar Random aturan mode berlaku, dengan beberapa pengecualian. Aturan berikut untuk file yang dibuka dalam Binary mode berbeda dari aturan untuk Random mode:
Klausa
RecordLengthdalamFileOpenfungsi tidak berpengaruh.FilePutmenulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.Untuk array apa pun selain array dalam struktur,
FilePuthanya menulis data. Tidak ada deskriptor yang ditulis.FilePutmenulis string panjang variabel yang bukan elemen struktur tanpa deskriptor panjang dua byte. Jumlah byte yang ditulis sama dengan jumlah karakter dalam string. Misalnya, pernyataan berikut menulis 11 byte ke nomor file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Menulis ke file dengan menggunakan
FilePutfungsi memerlukanWriteakses dari FileIOPermissionAccess enumerasi.
Lihat juga
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing ke File dalam Visual Basic
Berlaku untuk
FilePut(Int32, Int32, Int64)
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
Menulis data dari variabel ke file disk. Fitur ini My memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePut. Untuk informasi selengkapnya, lihat FileSystem .
public static void FilePut(int FileNumber, int Value, long RecordNumber = -1);
static member FilePut : int * int * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Integer, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Nomor file apa pun yang valid.
- Value
- Int32
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.
Pengecualian
RecordNumber
< 1 dan tidak sama dengan -1.
Mode file tidak valid.
Contoh
Contoh ini menggunakan FilePut fungsi untuk menulis data ke file. Lima rekaman struktur Person ditulis ke file.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Keterangan
FilePut hanya berlaku dalam Random mode dan Binary .
Data yang ditulis dengan FilePut biasanya dibaca dari file dengan menggunakan FileGet.
Rekaman pertama atau byte dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber, rekaman atau byte berikutnya setelah fungsi atau terakhir FileGet atau FilePut ditujukkan oleh fungsi terakhir Seek ditulis.
Argumen StringIsFixedLength mengontrol apakah fungsi menginterpretasikan string sebagai variabel atau panjang tetap.
FilePut tidak menulis deskriptor panjang ketika argumen adalah True. Jika Anda menggunakan StringIsFixedLength = True dengan FilePut, Anda harus melakukan hal yang sama dengan FileGet, dan Anda 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,FilePutmenulis 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 kepastian apa pun, 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 string,
FilePuttulis deskriptor dua byte yang berisi panjang string, lalu menulis data yang masuk ke variabel. Oleh karena itu, panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus setidaknya dua byte yang lebih besar dari panjang string yang sebenarnya.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePuttulis dua byte yang mengidentifikasiVarTypeobjek lalu menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutmenulis 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,
FilePutmenulis 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, Anda memiliki pilihan apakah akan menulis deskriptor untuk ukuran dan dimensi array atau tidak. Visual Basic 6.0 dan versi yang lebih lama menulis deskriptor file untuk array dinamis tetapi tidak untuk array ukuran tetap. Visual Basic 2005 default untuk tidak menulis deskriptor. Untuk menulis deskriptor, atur parameter ke
ArrayIsDynamicTrue. Saat menulis array, Anda harus mencocokkan cara array akan dibaca; jika akan dibaca dengan deskriptor, Anda harus menulis deskriptor. Deskriptor menentukan peringkat array, ukuran, dan batas bawah untuk setiap peringkat. Panjangnya sama dengan 2 ditambah 8 kali jumlah dimensi: (2 + 8 * NumberOfDimensions). Panjang rekaman yang ditentukan olehRecordLengthklausa dalamFileOpenfungsi harus lebih besar dari atau sama dengan jumlah semua byte yang diperlukan untuk menulis data array dan deskriptor array. Misalnya, deklarasi array berikut memerlukan 218 byte ketika array ditulis ke disk.Dim MyArray(4, 9) As IntegerJika variabel yang ditulis adalah jenis variabel lain (bukan string panjang variabel atau objek),
FilePuthanya menulis data variabel. Panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus lebih besar dari atau sama dengan panjang data yang ditulis.FilePutmenulis elemen struktur seolah-olah masing-masing ditulis secara individual, kecuali tidak ada padding antar elemen. AtributVBFixedStringdapat diterapkan ke bidang string dalam struktur untuk menunjukkan ukuran string saat ditulis ke disk.Note
Bidang string yang memiliki lebih banyak byte daripada yang ditentukan oleh
VBFixedStringatribut dipotong saat ditulis ke disk,
Mode Biner
Untuk file yang dibuka dalam Binary mode, sebagian besar Random aturan mode berlaku, dengan beberapa pengecualian. Aturan berikut untuk file yang dibuka dalam Binary mode berbeda dari aturan untuk Random mode:
Klausa
RecordLengthdalamFileOpenfungsi tidak berpengaruh.FilePutmenulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.Untuk array apa pun selain array dalam struktur,
FilePuthanya menulis data. Tidak ada deskriptor yang ditulis.FilePutmenulis string panjang variabel yang bukan elemen struktur tanpa deskriptor panjang dua byte. Jumlah byte yang ditulis sama dengan jumlah karakter dalam string. Misalnya, pernyataan berikut menulis 11 byte ke nomor file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Menulis ke file dengan menggunakan
FilePutfungsi memerlukanWriteakses dari FileIOPermissionAccess enumerasi.
Lihat juga
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing ke File dalam Visual Basic
Berlaku untuk
FilePut(Int32, Array, Int64, Boolean, Boolean)
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
Menulis data dari variabel ke file disk. Fitur ini My memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePut. 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 FilePut(int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
public static void FilePut(int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")>]
static member FilePut : int * Array * int64 * bool * bool -> unit
static member FilePut : int * Array * int64 * bool * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As Array, Optional RecordNumber As Long = -1, Optional ArrayIsDynamic As Boolean = false, Optional StringIsFixedLength As Boolean = false)
Parameter
- FileNumber
- Int32
Required. Nomor file apa pun yang valid.
- Value
- Array
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.
- ArrayIsDynamic
- Boolean
Optional. Hanya berlaku saat menulis array. Menentukan apakah array akan diperlakukan sebagai dinamis, dan apakah akan menulis deskriptor array untuk string yang menjelaskan panjangnya.
- StringIsFixedLength
- Boolean
Optional. Hanya berlaku saat menulis string. Menentukan apakah akan menulis deskriptor panjang string dua byte untuk string ke file. Defaultnya adalah False.
- Atribut
Pengecualian
RecordNumber
< 1 dan tidak sama dengan -1.
Mode file tidak valid.
Contoh
Contoh ini menggunakan FilePut fungsi untuk menulis data ke file. Lima rekaman struktur Person ditulis ke file.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Keterangan
FilePut hanya berlaku dalam Random mode dan Binary .
Data yang ditulis dengan FilePut biasanya dibaca dari file dengan menggunakan FileGet.
Rekaman pertama atau byte dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber, rekaman atau byte berikutnya setelah fungsi atau terakhir FileGet atau FilePut ditujukkan oleh fungsi terakhir Seek ditulis.
Argumen StringIsFixedLength mengontrol apakah fungsi menginterpretasikan string sebagai variabel atau panjang tetap.
FilePut tidak menulis deskriptor panjang ketika argumen adalah True. Jika Anda menggunakan StringIsFixedLength = True dengan FilePut, Anda harus melakukan hal yang sama dengan FileGet, dan Anda 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,FilePutmenulis 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 kepastian apa pun, 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 string,
FilePuttulis deskriptor dua byte yang berisi panjang string, lalu menulis data yang masuk ke variabel. Oleh karena itu, panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus setidaknya dua byte yang lebih besar dari panjang string yang sebenarnya.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePuttulis dua byte yang mengidentifikasiVarTypeobjek lalu menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutmenulis 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,
FilePutmenulis 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, Anda memiliki pilihan apakah akan menulis deskriptor untuk ukuran dan dimensi array atau tidak. Visual Basic 6.0 dan versi yang lebih lama menulis deskriptor file untuk array dinamis tetapi tidak untuk array ukuran tetap. Visual Basic 2005 default untuk tidak menulis deskriptor. Untuk menulis deskriptor, atur parameter ke
ArrayIsDynamicTrue. Saat menulis array, Anda harus mencocokkan cara array akan dibaca; jika akan dibaca dengan deskriptor, Anda harus menulis deskriptor. Deskriptor menentukan peringkat array, ukuran, dan batas bawah untuk setiap peringkat. Panjangnya sama dengan 2 ditambah 8 kali jumlah dimensi: (2 + 8 * NumberOfDimensions). Panjang rekaman yang ditentukan olehRecordLengthklausa dalamFileOpenfungsi harus lebih besar dari atau sama dengan jumlah semua byte yang diperlukan untuk menulis data array dan deskriptor array. Misalnya, deklarasi array berikut memerlukan 218 byte ketika array ditulis ke disk.Dim MyArray(4, 9) As IntegerJika variabel yang ditulis adalah jenis variabel lain (bukan string panjang variabel atau objek),
FilePuthanya menulis data variabel. Panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus lebih besar dari atau sama dengan panjang data yang ditulis.FilePutmenulis elemen struktur seolah-olah masing-masing ditulis secara individual, kecuali tidak ada padding antar elemen. AtributVBFixedStringdapat diterapkan ke bidang string dalam struktur untuk menunjukkan ukuran string saat ditulis ke disk.Note
Bidang string yang memiliki lebih banyak byte daripada yang ditentukan oleh
VBFixedStringatribut dipotong saat ditulis ke disk,
Mode Biner
Untuk file yang dibuka dalam Binary mode, sebagian besar Random aturan mode berlaku, dengan beberapa pengecualian. Aturan berikut untuk file yang dibuka dalam Binary mode berbeda dari aturan untuk Random mode:
Klausa
RecordLengthdalamFileOpenfungsi tidak berpengaruh.FilePutmenulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.Untuk array apa pun selain array dalam struktur,
FilePuthanya menulis data. Tidak ada deskriptor yang ditulis.FilePutmenulis string panjang variabel yang bukan elemen struktur tanpa deskriptor panjang dua byte. Jumlah byte yang ditulis sama dengan jumlah karakter dalam string. Misalnya, pernyataan berikut menulis 11 byte ke nomor file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Menulis ke file dengan menggunakan
FilePutfungsi memerlukanWriteakses dari FileIOPermissionAccess enumerasi.
Lihat juga
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing ke File dalam Visual Basic
Berlaku untuk
FilePut(Int32, Double, Int64)
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
Menulis data dari variabel ke file disk. Fitur ini My memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePut. Untuk informasi selengkapnya, lihat FileSystem .
public static void FilePut(int FileNumber, double Value, long RecordNumber = -1);
static member FilePut : int * double * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Double, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Nomor file apa pun yang valid.
- Value
- Double
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.
Pengecualian
RecordNumber
< 1 dan tidak sama dengan -1.
Mode file tidak valid.
Contoh
Contoh ini menggunakan FilePut fungsi untuk menulis data ke file. Lima rekaman struktur Person ditulis ke file.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Keterangan
FilePut hanya berlaku dalam Random mode dan Binary .
Data yang ditulis dengan FilePut biasanya dibaca dari file dengan menggunakan FileGet.
Rekaman pertama atau byte dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber, rekaman atau byte berikutnya setelah fungsi atau terakhir FileGet atau FilePut ditujukkan oleh fungsi terakhir Seek ditulis.
Argumen StringIsFixedLength mengontrol apakah fungsi menginterpretasikan string sebagai variabel atau panjang tetap.
FilePut tidak menulis deskriptor panjang ketika argumen adalah True. Jika Anda menggunakan StringIsFixedLength = True dengan FilePut, Anda harus melakukan hal yang sama dengan FileGet, dan Anda 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,FilePutmenulis 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 kepastian apa pun, 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 string,
FilePuttulis deskriptor dua byte yang berisi panjang string, lalu menulis data yang masuk ke variabel. Oleh karena itu, panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus setidaknya dua byte yang lebih besar dari panjang string yang sebenarnya.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePuttulis dua byte yang mengidentifikasiVarTypeobjek lalu menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutmenulis 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,
FilePutmenulis 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, Anda memiliki pilihan apakah akan menulis deskriptor untuk ukuran dan dimensi array atau tidak. Visual Basic 6.0 dan versi yang lebih lama menulis deskriptor file untuk array dinamis tetapi tidak untuk array ukuran tetap. Visual Basic 2005 default untuk tidak menulis deskriptor. Untuk menulis deskriptor, atur parameter ke
ArrayIsDynamicTrue. Saat menulis array, Anda harus mencocokkan cara array akan dibaca; jika akan dibaca dengan deskriptor, Anda harus menulis deskriptor. Deskriptor menentukan peringkat array, ukuran, dan batas bawah untuk setiap peringkat. Panjangnya sama dengan 2 ditambah 8 kali jumlah dimensi: (2 + 8 * NumberOfDimensions). Panjang rekaman yang ditentukan olehRecordLengthklausa dalamFileOpenfungsi harus lebih besar dari atau sama dengan jumlah semua byte yang diperlukan untuk menulis data array dan deskriptor array. Misalnya, deklarasi array berikut memerlukan 218 byte ketika array ditulis ke disk.Dim MyArray(4, 9) As IntegerJika variabel yang ditulis adalah jenis variabel lain (bukan string panjang variabel atau objek),
FilePuthanya menulis data variabel. Panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus lebih besar dari atau sama dengan panjang data yang ditulis.FilePutmenulis elemen struktur seolah-olah masing-masing ditulis secara individual, kecuali tidak ada padding antar elemen. AtributVBFixedStringdapat diterapkan ke bidang string dalam struktur untuk menunjukkan ukuran string saat ditulis ke disk.Note
Bidang string yang memiliki lebih banyak byte daripada yang ditentukan oleh
VBFixedStringatribut dipotong saat ditulis ke disk,
Mode Biner
Untuk file yang dibuka dalam Binary mode, sebagian besar Random aturan mode berlaku, dengan beberapa pengecualian. Aturan berikut untuk file yang dibuka dalam Binary mode berbeda dari aturan untuk Random mode:
Klausa
RecordLengthdalamFileOpenfungsi tidak berpengaruh.FilePutmenulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.Untuk array apa pun selain array dalam struktur,
FilePuthanya menulis data. Tidak ada deskriptor yang ditulis.FilePutmenulis string panjang variabel yang bukan elemen struktur tanpa deskriptor panjang dua byte. Jumlah byte yang ditulis sama dengan jumlah karakter dalam string. Misalnya, pernyataan berikut menulis 11 byte ke nomor file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Menulis ke file dengan menggunakan
FilePutfungsi memerlukanWriteakses dari FileIOPermissionAccess enumerasi.
Lihat juga
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing ke File dalam Visual Basic
Berlaku untuk
FilePut(Int32, Decimal, Int64)
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
Menulis data dari variabel ke file disk. Fitur ini My memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePut. Untuk informasi selengkapnya, lihat FileSystem .
public static void FilePut(int FileNumber, decimal Value, long RecordNumber = -1);
static member FilePut : int * decimal * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Decimal, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Nomor file apa pun yang valid.
- Value
- Decimal
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.
Pengecualian
RecordNumber
< 1 dan tidak sama dengan -1.
Mode file tidak valid.
Contoh
Contoh ini menggunakan FilePut fungsi untuk menulis data ke file. Lima rekaman struktur Person ditulis ke file.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Keterangan
FilePut hanya berlaku dalam Random mode dan Binary .
Data yang ditulis dengan FilePut biasanya dibaca dari file dengan menggunakan FileGet.
Rekaman pertama atau byte dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber, rekaman atau byte berikutnya setelah fungsi atau terakhir FileGet atau FilePut ditujukkan oleh fungsi terakhir Seek ditulis.
Argumen StringIsFixedLength mengontrol apakah fungsi menginterpretasikan string sebagai variabel atau panjang tetap.
FilePut tidak menulis deskriptor panjang ketika argumen adalah True. Jika Anda menggunakan StringIsFixedLength = True dengan FilePut, Anda harus melakukan hal yang sama dengan FileGet, dan Anda 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,FilePutmenulis 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 kepastian apa pun, 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 string,
FilePuttulis deskriptor dua byte yang berisi panjang string, lalu menulis data yang masuk ke variabel. Oleh karena itu, panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus setidaknya dua byte yang lebih besar dari panjang string yang sebenarnya.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePuttulis dua byte yang mengidentifikasiVarTypeobjek lalu menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutmenulis 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,
FilePutmenulis 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, Anda memiliki pilihan apakah akan menulis deskriptor untuk ukuran dan dimensi array atau tidak. Visual Basic 6.0 dan versi yang lebih lama menulis deskriptor file untuk array dinamis tetapi tidak untuk array ukuran tetap. Visual Basic 2005 default untuk tidak menulis deskriptor. Untuk menulis deskriptor, atur parameter ke
ArrayIsDynamicTrue. Saat menulis array, Anda harus mencocokkan cara array akan dibaca; jika akan dibaca dengan deskriptor, Anda harus menulis deskriptor. Deskriptor menentukan peringkat array, ukuran, dan batas bawah untuk setiap peringkat. Panjangnya sama dengan 2 ditambah 8 kali jumlah dimensi: (2 + 8 * NumberOfDimensions). Panjang rekaman yang ditentukan olehRecordLengthklausa dalamFileOpenfungsi harus lebih besar dari atau sama dengan jumlah semua byte yang diperlukan untuk menulis data array dan deskriptor array. Misalnya, deklarasi array berikut memerlukan 218 byte ketika array ditulis ke disk.Dim MyArray(4, 9) As IntegerJika variabel yang ditulis adalah jenis variabel lain (bukan string panjang variabel atau objek),
FilePuthanya menulis data variabel. Panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus lebih besar dari atau sama dengan panjang data yang ditulis.FilePutmenulis elemen struktur seolah-olah masing-masing ditulis secara individual, kecuali tidak ada padding antar elemen. AtributVBFixedStringdapat diterapkan ke bidang string dalam struktur untuk menunjukkan ukuran string saat ditulis ke disk.Note
Bidang string yang memiliki lebih banyak byte daripada yang ditentukan oleh
VBFixedStringatribut dipotong saat ditulis ke disk,
Mode Biner
Untuk file yang dibuka dalam Binary mode, sebagian besar Random aturan mode berlaku, dengan beberapa pengecualian. Aturan berikut untuk file yang dibuka dalam Binary mode berbeda dari aturan untuk Random mode:
Klausa
RecordLengthdalamFileOpenfungsi tidak berpengaruh.FilePutmenulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.Untuk array apa pun selain array dalam struktur,
FilePuthanya menulis data. Tidak ada deskriptor yang ditulis.FilePutmenulis string panjang variabel yang bukan elemen struktur tanpa deskriptor panjang dua byte. Jumlah byte yang ditulis sama dengan jumlah karakter dalam string. Misalnya, pernyataan berikut menulis 11 byte ke nomor file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Menulis ke file dengan menggunakan
FilePutfungsi memerlukanWriteakses dari FileIOPermissionAccess enumerasi.
Lihat juga
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing ke File dalam Visual Basic
Berlaku untuk
FilePut(Int32, DateTime, Int64)
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
Menulis data dari variabel ke file disk. Fitur ini My memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePut. Untuk informasi selengkapnya, lihat FileSystem .
public static void FilePut(int FileNumber, DateTime Value, long RecordNumber = -1);
static member FilePut : int * DateTime * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As DateTime, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Nomor file apa pun yang valid.
- Value
- DateTime
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.
Pengecualian
RecordNumber
< 1 dan tidak sama dengan -1.
Mode file tidak valid.
Contoh
Contoh ini menggunakan FilePut fungsi untuk menulis data ke file. Lima rekaman struktur Person ditulis ke file.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Keterangan
FilePut hanya berlaku dalam Random mode dan Binary .
Data yang ditulis dengan FilePut biasanya dibaca dari file dengan menggunakan FileGet.
Rekaman pertama atau byte dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber, rekaman atau byte berikutnya setelah fungsi atau terakhir FileGet atau FilePut ditujukkan oleh fungsi terakhir Seek ditulis.
Argumen StringIsFixedLength mengontrol apakah fungsi menginterpretasikan string sebagai variabel atau panjang tetap.
FilePut tidak menulis deskriptor panjang ketika argumen adalah True. Jika Anda menggunakan StringIsFixedLength = True dengan FilePut, Anda harus melakukan hal yang sama dengan FileGet, dan Anda 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,FilePutmenulis 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 kepastian apa pun, 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 string,
FilePuttulis deskriptor dua byte yang berisi panjang string, lalu menulis data yang masuk ke variabel. Oleh karena itu, panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus setidaknya dua byte yang lebih besar dari panjang string yang sebenarnya.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePuttulis dua byte yang mengidentifikasiVarTypeobjek lalu menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutmenulis 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,
FilePutmenulis 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, Anda memiliki pilihan apakah akan menulis deskriptor untuk ukuran dan dimensi array atau tidak. Visual Basic 6.0 dan versi yang lebih lama menulis deskriptor file untuk array dinamis tetapi tidak untuk array ukuran tetap. Visual Basic 2005 default untuk tidak menulis deskriptor. Untuk menulis deskriptor, atur parameter ke
ArrayIsDynamicTrue. Saat menulis array, Anda harus mencocokkan cara array akan dibaca; jika akan dibaca dengan deskriptor, Anda harus menulis deskriptor. Deskriptor menentukan peringkat array, ukuran, dan batas bawah untuk setiap peringkat. Panjangnya sama dengan 2 ditambah 8 kali jumlah dimensi: (2 + 8 * NumberOfDimensions). Panjang rekaman yang ditentukan olehRecordLengthklausa dalamFileOpenfungsi harus lebih besar dari atau sama dengan jumlah semua byte yang diperlukan untuk menulis data array dan deskriptor array. Misalnya, deklarasi array berikut memerlukan 218 byte ketika array ditulis ke disk.Dim MyArray(4, 9) As IntegerJika variabel yang ditulis adalah jenis variabel lain (bukan string panjang variabel atau objek),
FilePuthanya menulis data variabel. Panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus lebih besar dari atau sama dengan panjang data yang ditulis.FilePutmenulis elemen struktur seolah-olah masing-masing ditulis secara individual, kecuali tidak ada padding antar elemen. AtributVBFixedStringdapat diterapkan ke bidang string dalam struktur untuk menunjukkan ukuran string saat ditulis ke disk.Note
Bidang string yang memiliki lebih banyak byte daripada yang ditentukan oleh
VBFixedStringatribut dipotong saat ditulis ke disk,
Mode Biner
Untuk file yang dibuka dalam Binary mode, sebagian besar Random aturan mode berlaku, dengan beberapa pengecualian. Aturan berikut untuk file yang dibuka dalam Binary mode berbeda dari aturan untuk Random mode:
Klausa
RecordLengthdalamFileOpenfungsi tidak berpengaruh.FilePutmenulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.Untuk array apa pun selain array dalam struktur,
FilePuthanya menulis data. Tidak ada deskriptor yang ditulis.FilePutmenulis string panjang variabel yang bukan elemen struktur tanpa deskriptor panjang dua byte. Jumlah byte yang ditulis sama dengan jumlah karakter dalam string. Misalnya, pernyataan berikut menulis 11 byte ke nomor file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Menulis ke file dengan menggunakan
FilePutfungsi memerlukanWriteakses dari FileIOPermissionAccess enumerasi.
Lihat juga
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing ke File dalam Visual Basic
Berlaku untuk
FilePut(Int32, Char, Int64)
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
Menulis data dari variabel ke file disk. Fitur ini My memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePut. Untuk informasi selengkapnya, lihat FileSystem .
public static void FilePut(int FileNumber, char Value, long RecordNumber = -1);
static member FilePut : int * char * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Char, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Nomor file apa pun yang valid.
- Value
- Char
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.
Pengecualian
RecordNumber
< 1 dan tidak sama dengan -1.
Mode file tidak valid.
Contoh
Contoh ini menggunakan FilePut fungsi untuk menulis data ke file. Lima rekaman struktur Person ditulis ke file.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Keterangan
FilePut hanya berlaku dalam Random mode dan Binary .
Data yang ditulis dengan FilePut biasanya dibaca dari file dengan menggunakan FileGet.
Rekaman pertama atau byte dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber, rekaman atau byte berikutnya setelah fungsi atau terakhir FileGet atau FilePut ditujukkan oleh fungsi terakhir Seek ditulis.
Argumen StringIsFixedLength mengontrol apakah fungsi menginterpretasikan string sebagai variabel atau panjang tetap.
FilePut tidak menulis deskriptor panjang ketika argumen adalah True. Jika Anda menggunakan StringIsFixedLength = True dengan FilePut, Anda harus melakukan hal yang sama dengan FileGet, dan Anda 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,FilePutmenulis 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 kepastian apa pun, 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 string,
FilePuttulis deskriptor dua byte yang berisi panjang string, lalu menulis data yang masuk ke variabel. Oleh karena itu, panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus setidaknya dua byte yang lebih besar dari panjang string yang sebenarnya.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePuttulis dua byte yang mengidentifikasiVarTypeobjek lalu menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutmenulis 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,
FilePutmenulis 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, Anda memiliki pilihan apakah akan menulis deskriptor untuk ukuran dan dimensi array atau tidak. Visual Basic 6.0 dan versi yang lebih lama menulis deskriptor file untuk array dinamis tetapi tidak untuk array ukuran tetap. Visual Basic 2005 default untuk tidak menulis deskriptor. Untuk menulis deskriptor, atur parameter ke
ArrayIsDynamicTrue. Saat menulis array, Anda harus mencocokkan cara array akan dibaca; jika akan dibaca dengan deskriptor, Anda harus menulis deskriptor. Deskriptor menentukan peringkat array, ukuran, dan batas bawah untuk setiap peringkat. Panjangnya sama dengan 2 ditambah 8 kali jumlah dimensi: (2 + 8 * NumberOfDimensions). Panjang rekaman yang ditentukan olehRecordLengthklausa dalamFileOpenfungsi harus lebih besar dari atau sama dengan jumlah semua byte yang diperlukan untuk menulis data array dan deskriptor array. Misalnya, deklarasi array berikut memerlukan 218 byte ketika array ditulis ke disk.Dim MyArray(4, 9) As IntegerJika variabel yang ditulis adalah jenis variabel lain (bukan string panjang variabel atau objek),
FilePuthanya menulis data variabel. Panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus lebih besar dari atau sama dengan panjang data yang ditulis.FilePutmenulis elemen struktur seolah-olah masing-masing ditulis secara individual, kecuali tidak ada padding antar elemen. AtributVBFixedStringdapat diterapkan ke bidang string dalam struktur untuk menunjukkan ukuran string saat ditulis ke disk.Note
Bidang string yang memiliki lebih banyak byte daripada yang ditentukan oleh
VBFixedStringatribut dipotong saat ditulis ke disk,
Mode Biner
Untuk file yang dibuka dalam Binary mode, sebagian besar Random aturan mode berlaku, dengan beberapa pengecualian. Aturan berikut untuk file yang dibuka dalam Binary mode berbeda dari aturan untuk Random mode:
Klausa
RecordLengthdalamFileOpenfungsi tidak berpengaruh.FilePutmenulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.Untuk array apa pun selain array dalam struktur,
FilePuthanya menulis data. Tidak ada deskriptor yang ditulis.FilePutmenulis string panjang variabel yang bukan elemen struktur tanpa deskriptor panjang dua byte. Jumlah byte yang ditulis sama dengan jumlah karakter dalam string. Misalnya, pernyataan berikut menulis 11 byte ke nomor file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Menulis ke file dengan menggunakan
FilePutfungsi memerlukanWriteakses dari FileIOPermissionAccess enumerasi.
Lihat juga
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing ke File dalam Visual Basic
Berlaku untuk
FilePut(Int32, Byte, Int64)
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
Menulis data dari variabel ke file disk. Fitur ini My memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePut. Untuk informasi selengkapnya, lihat FileSystem .
public static void FilePut(int FileNumber, byte Value, long RecordNumber = -1);
static member FilePut : int * byte * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Byte, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Nomor file apa pun yang valid.
- Value
- Byte
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.
Pengecualian
RecordNumber
< 1 dan tidak sama dengan -1.
Mode file tidak valid.
Contoh
Contoh ini menggunakan FilePut fungsi untuk menulis data ke file. Lima rekaman struktur Person ditulis ke file.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Keterangan
FilePut hanya berlaku dalam Random mode dan Binary .
Data yang ditulis dengan FilePut biasanya dibaca dari file dengan menggunakan FileGet.
Rekaman pertama atau byte dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber, rekaman atau byte berikutnya setelah fungsi atau terakhir FileGet atau FilePut ditujukkan oleh fungsi terakhir Seek ditulis.
Argumen StringIsFixedLength mengontrol apakah fungsi menginterpretasikan string sebagai variabel atau panjang tetap.
FilePut tidak menulis deskriptor panjang ketika argumen adalah True. Jika Anda menggunakan StringIsFixedLength = True dengan FilePut, Anda harus melakukan hal yang sama dengan FileGet, dan Anda 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,FilePutmenulis 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 kepastian apa pun, 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 string,
FilePuttulis deskriptor dua byte yang berisi panjang string, lalu menulis data yang masuk ke variabel. Oleh karena itu, panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus setidaknya dua byte yang lebih besar dari panjang string yang sebenarnya.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePuttulis dua byte yang mengidentifikasiVarTypeobjek lalu menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutmenulis 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,
FilePutmenulis 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, Anda memiliki pilihan apakah akan menulis deskriptor untuk ukuran dan dimensi array atau tidak. Visual Basic 6.0 dan versi yang lebih lama menulis deskriptor file untuk array dinamis tetapi tidak untuk array ukuran tetap. Visual Basic 2005 default untuk tidak menulis deskriptor. Untuk menulis deskriptor, atur parameter ke
ArrayIsDynamicTrue. Saat menulis array, Anda harus mencocokkan cara array akan dibaca; jika akan dibaca dengan deskriptor, Anda harus menulis deskriptor. Deskriptor menentukan peringkat array, ukuran, dan batas bawah untuk setiap peringkat. Panjangnya sama dengan 2 ditambah 8 kali jumlah dimensi: (2 + 8 * NumberOfDimensions). Panjang rekaman yang ditentukan olehRecordLengthklausa dalamFileOpenfungsi harus lebih besar dari atau sama dengan jumlah semua byte yang diperlukan untuk menulis data array dan deskriptor array. Misalnya, deklarasi array berikut memerlukan 218 byte ketika array ditulis ke disk.Dim MyArray(4, 9) As IntegerJika variabel yang ditulis adalah jenis variabel lain (bukan string panjang variabel atau objek),
FilePuthanya menulis data variabel. Panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus lebih besar dari atau sama dengan panjang data yang ditulis.FilePutmenulis elemen struktur seolah-olah masing-masing ditulis secara individual, kecuali tidak ada padding antar elemen. AtributVBFixedStringdapat diterapkan ke bidang string dalam struktur untuk menunjukkan ukuran string saat ditulis ke disk.Note
Bidang string yang memiliki lebih banyak byte daripada yang ditentukan oleh
VBFixedStringatribut dipotong saat ditulis ke disk,
Mode Biner
Untuk file yang dibuka dalam Binary mode, sebagian besar Random aturan mode berlaku, dengan beberapa pengecualian. Aturan berikut untuk file yang dibuka dalam Binary mode berbeda dari aturan untuk Random mode:
Klausa
RecordLengthdalamFileOpenfungsi tidak berpengaruh.FilePutmenulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.Untuk array apa pun selain array dalam struktur,
FilePuthanya menulis data. Tidak ada deskriptor yang ditulis.FilePutmenulis string panjang variabel yang bukan elemen struktur tanpa deskriptor panjang dua byte. Jumlah byte yang ditulis sama dengan jumlah karakter dalam string. Misalnya, pernyataan berikut menulis 11 byte ke nomor file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Menulis ke file dengan menggunakan
FilePutfungsi memerlukanWriteakses dari FileIOPermissionAccess enumerasi.
Lihat juga
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing ke File dalam Visual Basic
Berlaku untuk
FilePut(Int32, Boolean, Int64)
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
Menulis data dari variabel ke file disk. Fitur ini My memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePut. Untuk informasi selengkapnya, lihat FileSystem .
public static void FilePut(int FileNumber, bool Value, long RecordNumber = -1);
static member FilePut : int * bool * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Boolean, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Nomor file apa pun yang valid.
- Value
- Boolean
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.
Pengecualian
RecordNumber
< 1 dan tidak sama dengan -1.
Mode file tidak valid.
Contoh
Contoh ini menggunakan FilePut fungsi untuk menulis data ke file. Lima rekaman struktur Person ditulis ke file.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Keterangan
FilePut hanya berlaku dalam Random mode dan Binary .
Data yang ditulis dengan FilePut biasanya dibaca dari file dengan menggunakan FileGet.
Rekaman pertama atau byte dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber, rekaman atau byte berikutnya setelah fungsi atau terakhir FileGet atau FilePut ditujukkan oleh fungsi terakhir Seek ditulis.
Argumen StringIsFixedLength mengontrol apakah fungsi menginterpretasikan string sebagai variabel atau panjang tetap.
FilePut tidak menulis deskriptor panjang ketika argumen adalah True. Jika Anda menggunakan StringIsFixedLength = True dengan FilePut, Anda harus melakukan hal yang sama dengan FileGet, dan Anda 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,FilePutmenulis 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 kepastian apa pun, 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 string,
FilePuttulis deskriptor dua byte yang berisi panjang string, lalu menulis data yang masuk ke variabel. Oleh karena itu, panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus setidaknya dua byte yang lebih besar dari panjang string yang sebenarnya.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePuttulis dua byte yang mengidentifikasiVarTypeobjek lalu menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutmenulis 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,
FilePutmenulis 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, Anda memiliki pilihan apakah akan menulis deskriptor untuk ukuran dan dimensi array atau tidak. Visual Basic 6.0 dan versi yang lebih lama menulis deskriptor file untuk array dinamis tetapi tidak untuk array ukuran tetap. Visual Basic 2005 default untuk tidak menulis deskriptor. Untuk menulis deskriptor, atur parameter ke
ArrayIsDynamicTrue. Saat menulis array, Anda harus mencocokkan cara array akan dibaca; jika akan dibaca dengan deskriptor, Anda harus menulis deskriptor. Deskriptor menentukan peringkat array, ukuran, dan batas bawah untuk setiap peringkat. Panjangnya sama dengan 2 ditambah 8 kali jumlah dimensi: (2 + 8 * NumberOfDimensions). Panjang rekaman yang ditentukan olehRecordLengthklausa dalamFileOpenfungsi harus lebih besar dari atau sama dengan jumlah semua byte yang diperlukan untuk menulis data array dan deskriptor array. Misalnya, deklarasi array berikut memerlukan 218 byte ketika array ditulis ke disk.Dim MyArray(4, 9) As IntegerJika variabel yang ditulis adalah jenis variabel lain (bukan string panjang variabel atau objek),
FilePuthanya menulis data variabel. Panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus lebih besar dari atau sama dengan panjang data yang ditulis.FilePutmenulis elemen struktur seolah-olah masing-masing ditulis secara individual, kecuali tidak ada padding antar elemen. AtributVBFixedStringdapat diterapkan ke bidang string dalam struktur untuk menunjukkan ukuran string saat ditulis ke disk.Note
Bidang string yang memiliki lebih banyak byte daripada yang ditentukan oleh
VBFixedStringatribut dipotong saat ditulis ke disk,
Mode Biner
Untuk file yang dibuka dalam Binary mode, sebagian besar Random aturan mode berlaku, dengan beberapa pengecualian. Aturan berikut untuk file yang dibuka dalam Binary mode berbeda dari aturan untuk Random mode:
Klausa
RecordLengthdalamFileOpenfungsi tidak berpengaruh.FilePutmenulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.Untuk array apa pun selain array dalam struktur,
FilePuthanya menulis data. Tidak ada deskriptor yang ditulis.FilePutmenulis string panjang variabel yang bukan elemen struktur tanpa deskriptor panjang dua byte. Jumlah byte yang ditulis sama dengan jumlah karakter dalam string. Misalnya, pernyataan berikut menulis 11 byte ke nomor file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Menulis ke file dengan menggunakan
FilePutfungsi memerlukanWriteakses dari FileIOPermissionAccess enumerasi.
Lihat juga
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing ke File dalam Visual Basic
Berlaku untuk
FilePut(Int32, Int16, Int64)
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
- Sumber:
- FileSystem.vb
Menulis data dari variabel ke file disk. Fitur ini My memberi Anda produktivitas dan performa yang lebih baik dalam operasi I/O file daripada FilePut. Untuk informasi selengkapnya, lihat FileSystem .
public static void FilePut(int FileNumber, short Value, long RecordNumber = -1);
static member FilePut : int * int16 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Short, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Nomor file apa pun yang valid.
- Value
- Int16
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.
Pengecualian
RecordNumber
< 1 dan tidak sama dengan -1.
Mode file tidak valid.
Contoh
Contoh ini menggunakan FilePut fungsi untuk menulis data ke file. Lima rekaman struktur Person ditulis ke file.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Keterangan
FilePut hanya berlaku dalam Random mode dan Binary .
Data yang ditulis dengan FilePut biasanya dibaca dari file dengan menggunakan FileGet.
Rekaman pertama atau byte dalam file berada di posisi 1, rekaman atau byte kedua berada di posisi 2, dan sebagainya. Jika Anda menghilangkan RecordNumber, rekaman atau byte berikutnya setelah fungsi atau terakhir FileGet atau FilePut ditujukkan oleh fungsi terakhir Seek ditulis.
Argumen StringIsFixedLength mengontrol apakah fungsi menginterpretasikan string sebagai variabel atau panjang tetap.
FilePut tidak menulis deskriptor panjang ketika argumen adalah True. Jika Anda menggunakan StringIsFixedLength = True dengan FilePut, Anda harus melakukan hal yang sama dengan FileGet, dan Anda 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,FilePutmenulis 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 kepastian apa pun, 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 string,
FilePuttulis deskriptor dua byte yang berisi panjang string, lalu menulis data yang masuk ke variabel. Oleh karena itu, panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus setidaknya dua byte yang lebih besar dari panjang string yang sebenarnya.Jika variabel yang ditulis adalah objek yang berisi jenis numerik,
FilePuttulis dua byte yang mengidentifikasiVarTypeobjek lalu menulis variabel. Misalnya, saat menulis objek yang berisi bilangan bulat,FilePutmenulis 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,
FilePutmenulis 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, Anda memiliki pilihan apakah akan menulis deskriptor untuk ukuran dan dimensi array atau tidak. Visual Basic 6.0 dan versi yang lebih lama menulis deskriptor file untuk array dinamis tetapi tidak untuk array ukuran tetap. Visual Basic 2005 default untuk tidak menulis deskriptor. Untuk menulis deskriptor, atur parameter ke
ArrayIsDynamicTrue. Saat menulis array, Anda harus mencocokkan cara array akan dibaca; jika akan dibaca dengan deskriptor, Anda harus menulis deskriptor. Deskriptor menentukan peringkat array, ukuran, dan batas bawah untuk setiap peringkat. Panjangnya sama dengan 2 ditambah 8 kali jumlah dimensi: (2 + 8 * NumberOfDimensions). Panjang rekaman yang ditentukan olehRecordLengthklausa dalamFileOpenfungsi harus lebih besar dari atau sama dengan jumlah semua byte yang diperlukan untuk menulis data array dan deskriptor array. Misalnya, deklarasi array berikut memerlukan 218 byte ketika array ditulis ke disk.Dim MyArray(4, 9) As IntegerJika variabel yang ditulis adalah jenis variabel lain (bukan string panjang variabel atau objek),
FilePuthanya menulis data variabel. Panjang catatan yang ditentukan olehRecordLengthklausul dalamFileOpenfungsi harus lebih besar dari atau sama dengan panjang data yang ditulis.FilePutmenulis elemen struktur seolah-olah masing-masing ditulis secara individual, kecuali tidak ada padding antar elemen. AtributVBFixedStringdapat diterapkan ke bidang string dalam struktur untuk menunjukkan ukuran string saat ditulis ke disk.Note
Bidang string yang memiliki lebih banyak byte daripada yang ditentukan oleh
VBFixedStringatribut dipotong saat ditulis ke disk,
Mode Biner
Untuk file yang dibuka dalam Binary mode, sebagian besar Random aturan mode berlaku, dengan beberapa pengecualian. Aturan berikut untuk file yang dibuka dalam Binary mode berbeda dari aturan untuk Random mode:
Klausa
RecordLengthdalamFileOpenfungsi tidak berpengaruh.FilePutmenulis semua variabel ke disk secara berdekatan, yaitu, tanpa padding di antara rekaman.Untuk array apa pun selain array dalam struktur,
FilePuthanya menulis data. Tidak ada deskriptor yang ditulis.FilePutmenulis string panjang variabel yang bukan elemen struktur tanpa deskriptor panjang dua byte. Jumlah byte yang ditulis sama dengan jumlah karakter dalam string. Misalnya, pernyataan berikut menulis 11 byte ke nomor file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Menulis ke file dengan menggunakan
FilePutfungsi memerlukanWriteakses dari FileIOPermissionAccess enumerasi.
Lihat juga
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing ke File dalam Visual Basic