selain file teks, kita juga bisa membuat dan menggunakan file biner. di dalam VB.NET, juga sudah disediakan cara instant jika kita ingin membuat dan membaca ke dan dari file biner secara intantly.
untuk menulis ke dalam file biner, gunakan:
My.Computer.FileSystem.WriteAllBytes(Filename:string, Content:byte(), Append:boolean)
sedangkan jika kita ingin membaca isi dari sebuah file teks, gunakan:
My.Computer.FileSystem.ReadAllBytes(Filename:string):byte()
contoh berikut ini ditulis dengan menggunakan VB 10 (VS 2010):
Form:
Code:
Public Class FrmDemoFileBiner
Private Sub btnBukaGambar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBukaGambar.Click
Using ofd As New OpenFileDialog()
With ofd
.Title = "Buka File Gambar"
.Filter = "JPEG File (*.JPG)|*.jpg"
.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyPictures
.Multiselect = False
.CheckPathExists = True
.CheckFileExists = True
.FileName = ""
If .ShowDialog() = Windows.Forms.DialogResult.OK Then
If .FileName <> "" Then
Me.PicBox.Image = Image.FromFile(.FileName)
Me.lblKeterangan.Text = String.Format("NamaFile: {0}", .FileName)
End If
End If
End With
End Using
End SubPrivate Sub btnBukaBiner_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBukaBiner.Click
Using ofd As New OpenFileDialog()
With ofd
.Title = "Buka File Biner"
.Filter = "Binary File (*.Bin)|*.bin"
.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyPictures
.Multiselect = False
.CheckPathExists = True
.CheckFileExists = True
.FileName = ""
If .ShowDialog() = Windows.Forms.DialogResult.OK Then
If .FileName <> "" Then
' membaca dari file biner dan menampilkan ke PicBox
Me.PicBox.Image =
DirectCast(
New ImageConverter().ConvertFrom(My.Computer.FileSystem.ReadAllBytes(.FileName)),
Image)
Me.lblKeterangan.Text = String.Format("NamaFile: {0}", .FileName)
End If
End If
End With
End Using
End SubPrivate Sub btnSimpanAsBiner_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpanAsBiner.Click
Try
Using sfd As New SaveFileDialog()
With sfd
.Title = "Simpan Gambar As File Biner"
.Filter = "Binary File (*.Bin)|*.bin"
.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyPictures
.CheckPathExists = True
.OverwritePrompt = True
.DefaultExt = ".bin"
.FileName = "MyBinaryFile.bin"
If .ShowDialog() = Windows.Forms.DialogResult.OK Then
If .FileName <> "" Then
' menulis ke file biner
My.Computer.FileSystem.WriteAllBytes(
.FileName,
DirectCast(New ImageConverter().ConvertTo(Me.PicBox.Image, GetType(Byte())), Byte()),
False)
End If
End If
End With
End Using
Catch ex As Exception
MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
End Try
End SubPrivate Sub btnBersihkanPicBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBersihkanPicBox.Click
Me.PicBox.Image = Nothing
Me.lblKeterangan.Text = "NamaFile:"
End SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.lblKeterangan.Text = "NamaFile:"
End SubEnd Class
beberapa point penting yang harus diperhatikan dari code di atas adalah sebagai berikut:
My.Computer.FileSystem.WriteAllBytes(
.FileName,
DirectCast(
New ImageConverter().ConvertTo(Me.PicBox.Image, GetType(Byte())), Byte()),
False)
potongan code di atas bertugas untuk menyimpan gambar ke dalam sebuah file biner.
isi content yang akan ditulis ke dalam file biner harus dikonversi terlebih dahulu ke dalam format array of byte (byte()). pada contoh code di atas, digunakan class ImageConverter dan Method ConvertTo untuk melakukan konversi object Image ke dalam byte(). potongan code untuk konversinya bisa dilihat di bawah ini
DirectCast(New ImageConverter().
ConvertTo(Me.PicBox.Image, GetType(Byte())), Byte())
method DirectCast digunakan untuk mengkonversi hasil dari method ConvertTo ke dalam byte() karena method ConvertTo ini akan menghasilkan tipe data balik dalam bentuk Object.
potongan code berikutnya yang harus diperhatikan adalah:
Me.PicBox.Image =
DirectCast(New ImageConverter().
ConvertFrom(My.Computer.FileSystem.ReadAllBytes(.FileName)),
Image)
potongan code di atas berfungsi untuk membaca isi dari file biner. karena kembalian dari method ReadAllBytes adalah dalam bentuk byte(), maka kita perlu melakukan konversi kembali dari byte() menjadi sebuah Image. hal ini bisa dilakukan dengan menggunakan class ImageConverter dan method ConvertFrom. karena method ConvertFrom ini akan menghasilkan tipe data balik berupa Object, maka kita harus cast kembali tipe data tersebut menjadi Image dengan menggunakan bantuan method DirectCast.
berikut ini bentuk tampilan program ketika dijalankan:
ok, sekian dari saya, semoga bermanfaat bagi kita semua.
Rgds
Adi
1 komentar:
Thanks, sangat bermanfaat
Jika file biner yg tersimpan itu, disimpan dalam database access bisa g??
Posting Komentar