Jumat, 18 Januari 2013

Bekerja dengan File di Visual Basic 6


Anda dapat bekerja dengan file di Visual Basic dengan menggunakan object FSO yang berorientasi object, seperti: Copy, Delete, Move, dan OpenAsTextStream, di antara yang lainnya, atau dengan menggunakan fungsi-fungsi lama yang sudah ada, seperti: Open, Close, FileCopy, GetAttr, dan sebagainya. Anda juga dapat memindahkan, menyalin, atau menghapus file tanpa memperhatikan tipe file mereka.
Untuk informasi lebih lanjut mengenai penggunaan fungsi-fungsi lama yang sudah ada, baca artikel yang berjudul “Pemrosesan File dengan Fungsi dan Pernyataan Lama Input/Output File”. Sisa dari artikel ini akan membahas mengenai penggunaan object, method, dan properties FSO, untuk bekerja dengan file.
Ada dua kategori utama dari pemanipulasian file:
  • Pembuatan, penambahan, atau penghapusan data, dan pembacaan file
  • Pemindahan, penyalinan, dan penghapusan file
Pembuatan File dan Penambahan Data dengan File System Objects
Ada tiga cara untuk membuat sebuah file teks yang bersifat sekuensial (kadang-kadang disebut sebagai “text stream”). Salah satu cara itu adalah menggunakan method CreateTextFile. Untuk membuat sebuah file teks yang isinya kosong, gunakan kode ini:

Dim fso As New FileSystemObject, fil As File
Set fil = fso.CreateTextFile("c:\testfile.txt", True)
 
Model object FSO belum mendukung pembuatan file random atau file binary. Untuk membuat file random dan binary, gunakan perintah Open apakah dengan memakai penanda (flag) Random atau Binary. Informasi lengkap bagaimana memanipulasi file random dan binary terdapat di artikel yang berjudul “Penggunaan Akses File Random” dan “Penggunaan Akses File Binary”.
Cara lain untuk menggunakan method OpenTextFile dari object FileSystemObject dengan menambahkan penanda (flag) ForWriting:

Dim fso As New FileSystemObject, ts As TextStream
Set ts = fso.OpenTextFile("c:\test.txt", ForWriting)
 
Atau Anda dapat menggunakan method OpenAsTextStream dengan menambahkan penanda (flag) ForWriting:

Dim fso As New FileSystemObject, fil As File, ts As TextStream
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile ("test1.txt")
Set fil = fso.GetFile("test1.txt")
Set ts = fil.OpenAsTextStream(ForWriting)
 
Penambahan Data ke File
Sekali file text telah dibuat, Anda dapat menambahkan data ke dalamnya dengan tiga in cara:
  1. Membuka file text untuk penulisan data.
  2. Menulis data.
  3. Menutup file.
Untuk membuka file, Anda dapat menggunakan baik kedua method berikut: OpenAsTextStream dari object File, atau method OpenTextFile dari object FileSystemObject.
Untuk menulis data ke file text yang terbuka, Anda dapat menggunakan method Write atau WriteLine dari object TextStream. Perbedaan satu-satunya antara Write dan WriteLine adalah WriteLine menambahkan karakter baris baru ke bagian akhir dari string yang ditentukan.
Jika Anda ingin menambahkan sebuah baris baru ke file text, gunakan method WriteBlankLines.
Untuk menutup sebuah file yang terbuka, gunakan method Close dari object TextStream.
Berikut ini contoh bagaimana membuka sebuah file, menggunakan tiga kali method penulisan untuk menambahkan data ke dalam file, lalu menutup file tersebut:

Sub Create_File()
    Dim fso, txtfile
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set txtfile = fso.CreateTextFile("c:\testfile.txt", True)
    txtfile.Write ("Ini hanya sebuah percobaan. ") ' Tulis sebuah baris.
    ' Tulis sebuah baris dengan karakter baris baru.
    txtfile.WriteLine("Percobaan 1, 2, 3.") 
    ' Tulis tiga karakter baris baru ke file.      
    txtfile.WriteBlankLines(3) 
    txtfile.Close
End Sub
 
 
Pembacaan File dengan File System Objects
Untuk membaca data dari sebuah file text, gunakan ketiga method Read, ReadLine, atau ReadAll dari object TextStream:
Tugas Method
Membaca sejumlah karakter tertentu dari sebuah file Read
Membaca seluruh karakter dalam satu baris (sampai dengan, tapi tidak termasuk, karakter baris baru) ReadLine
Membaca keseluruhan isi file text ReadAll
Jika Anda menggunakan method Read atau ReadLine dan Anda ingin melewati ke sebuah bagian data tertentu, Anda dapat menggunakan method Skip atau SkipLine.
Hasil teks dari method pembacaan ditempatkan di dalam sebuah string yang dapat ditampilkan di sebuah control, dipotong oleh operator string (seperti Left, Right, dan Mid), digabungkan, dan sebagainya.
Konstanta vbNewLine mengandung sebuah karakter atau karakter-karakter (tergantung pada sistem operasi) untuk melanjutkan kursor ke bagian permulaan pada baris berikutnya (carriage-return/linefeed). Berhati-hatilah bahwa akhir dari beberapa string mungkin mengandung karakter yang tidak dapat dicetak.
Perhatikan contoh berikut:

Sub Read_Files()
    Dim fso As New FileSystemObject, txtfile, _
      fil1 As File, ts As TextStream
    fso.CreateTextFile "c:\testfile.txt", True
    MsgBox "Penulisan file"
    ' Tulis sebuah baris.
    Set fil1 = fso.GetFile("c:\testfile.txt")
    Set ts = fil1.OpenAsTextStream(ForWriting)
    ts.Write "Halo dunia"
    ts.Close
    ' Baca isi file.
    Set ts = fil1.OpenAsTextStream(ForReading)
    s = ts.ReadLine
    MsgBox s
    ts.Close
End Sub
 
Pemindahan, Penyalinan, dan Penghapusan File
Model object FSO memiliki dua method yang masing-masing untuk memindahkan, menyalin, dan menghapus file:
Tugas Method
Memindahkan sebuah file File.Move atau
FileSystemObject.MoveFile
Menyalin sebuah file File.Copy atau
FileSystemObject.CopyFile
Menghapus sebuah file File.Delete atau
FileSystemObject.DeleteFile
Contoh berikut membuat sebuah file text di dalam direktori utama drive C, menuliskan beberapa informasi ke dalamnya, memindahkannya ke sebuah direktori yang bernama \tmp, membuat sebuah salinannya di dalam sebuah direktori yang bernama \temp, lalu menghapus salinan dari kedua direktori tadi.
Untuk menjalankan contoh ini, pastikan Anda memiliki direktori bernama \tmp dan \temp di direktori utama dari drive C.

Sub Manip_Files()
    Dim fso as New FileSystemObject, txtfile, fil1, fil2
    Set txtfile = fso.CreateTextFile("c:\testfile.txt", True)
    MsgBox "Penulisan file"
    ' Tulis sebuah baris.
    txtfile.Write ("Ini hanya percobaan.")
    ' Tutup file untuk penulisan.
    txtfile.Close
    MsgBox "Memindahkan file ke c:\tmp"
    ' Dapatkan penanganan ke file di direktori utama C:\.
    Set fil1 = fso.GetFile("c:\testfile.txt")
    ' Pindahkan file ke direktori \tmp.
    fil1.Move ("c:\tmp\testfile.txt")
    MsgBox "Menyalin file ke c:\temp"
    ' Salin file ke \temp.
    fil1.Copy ("c:\temp\testfile.txt")
    MsgBox "Menghapus file"
    ' Dapatkan penanganan ke lokasi file saat ini.
    Set fil1 = fso.GetFile("c:\tmp\testfile.txt")
    Set fil2 = fso.GetFile("c:\temp\testfile.txt")
    ' Hapus file.
    fil1.Delete
    fil2.Delete
    MsgBox "Semua telah dilakukan!"
End Sub

1 komentar:

  1. Maaf saya ingin tanya,
    saya membuat acak angka dengan vb untuk NIM Mahasiswa
    saya ingin bermaksud apabila NIM yang diacak sudah keluar maka tidak bisa keluar lagi di pengacakan.
    jika boleh mohon bantuannya.
    NIM Mahasiswa ada 10 digit.
    saya pernah diberitahukan menggunakan flag (jika tidak salah) tetapi belum bisa terpakai/sukses dan sekarang malah bingung.
    ynnrny@gmail.com

    BalasHapus