Semua file teks yang dibuka dengan menggunakan kode program secara otomatis akan ditutup saat kode program selesai dijalankan. Oleh karena itu, kita tidak harus secara eksplisit menutup file teks setiap kali membukanya. Walaupun demikian, menutup file teks secara eksplisit (dengan menulis pernyataan penutup) sebaiknya tetap dilakukan bila kita telah membuka file teks itu.
Seperti telah dijelaskan di posting sebelumnya yang berjudul Membuka File Teks di Access VBA, untuk menghindari risiko yang tidak diinginkan, adalah lebih baik bila kita menutup sebuah file teks yang sudah dibuka. Apalagi bila pada baris berikutnya, kita ingin membuka file teks dengan mode yang berbeda, maka menutup file teks mutlak diperlukan. Selain merupakan praktek pemrograman yang baik, menutup file teks juga menghindarkan kita dari masalah seperti berikut ini:
Bila fungsi bacaTeksFile dijalankan di Immediate Window, maka hasilnya seperti ini:
Saat pertama kali file teks dibaca, isinya disimpan dalam variable string strIsi. Saat file teks itu dibaca untuk kedua kalinya (melalui Do While...Loop), tidak ada isi file yang bisa ditampilkan karena posisi pembacaan telah berada di akhir file. Untuk membacanya kembali, maka kita harus menutup file teks itu dan membukanya kembali. Untuk menutup file teks, kita menggunakan metode Close. Sebagai contoh, dengan mengaktifkan baris 13 dan 14 pada fungsi bacaTeksFile, seperti berikut ini, maka pembacaan kedua berhasil dilakukan.
Dengan mengaktifkan kode di atas, posisi pembacaan akan kembali berada di awal file. Kode program berikutnya kemudian dapat dijalankan dengan sempurna. Adapun isi pembacaan kedua sama dengan isi pembacaan pertama.
Seperti telah dijelaskan di posting sebelumnya yang berjudul Membuka File Teks di Access VBA, untuk menghindari risiko yang tidak diinginkan, adalah lebih baik bila kita menutup sebuah file teks yang sudah dibuka. Apalagi bila pada baris berikutnya, kita ingin membuka file teks dengan mode yang berbeda, maka menutup file teks mutlak diperlukan. Selain merupakan praktek pemrograman yang baik, menutup file teks juga menghindarkan kita dari masalah seperti berikut ini:
- Menghapus file.teks. Kadangkala, kita membuat file teks melalu kode program, menggunakan file teks itu untuk tujuan tertentu, dan kemudian menghapusnya sebelum kode program selesai dijalankan. Bila file teks yang posisinya masih terbuka ingin dihapus, maka akan muncul pesan kesalahan "Access denied", karena sistem operasi melarang kita untuk menghapus file yang masih terbuka.
- Membaca kembali file teks. Kita sering mengarahkan kode program untuk membaca file teks berulang kali. Misalnya, kita membuka file teks, menyimpan semua isi file teks itu dalam sebuah variabel string di memori sementara, lalu mencari string yang mempunyai kode kesalahan tertentu. Jika kode kesalahan itu ditemukan, kita mengarahkan kode program untuk membaca file teks - baris demi baris - dengan menggunakan looping dan menampilkan baris yang mempunyai kode kesalahan itu di layar.
Function bacaTeksFile() Dim strIsi, strBaris As String Dim fso As Object Dim oFile As Object Dim Const ForReading as Integer=1 Set fso = CreateObject("Scripting.FileSystemObject") Set oFile = fso.OpenTextFile("D:\SoftwareAkuntansi\201605312040.txt", 1) Debug.Print "Pembacaan pertama:" strIsi = oFile.ReadAll Debug.Print strIsi 'Aktifkan dua baris di bawah ini untuk memperoleh isi data dengan cara yang berbeda, carany: hapus tanda komentar (') ' oFile.Close ' Set oFile = fso.OpenTextFile("D:\SoftwareAkuntansi\201605312040.txt", ForReading ) Debug.Print "Pembacaan kedua, mengulang pembacaan pertama dengan cara berbeda:" Do While oFile.AtEndOfStream = False strBaris = oFile.ReadLine Debug.Print strBaris Loop End FunctionFungsi bacaTeksFile membaca isi file D:\SoftwareAkuntansi\201605312040.txt seperti telah di-post di "Membuka File Teks di Access VBA" pada tautan di atas. Adapun isi dari file 201605312040.txt ada di gambar berikut ini.
Bila fungsi bacaTeksFile dijalankan di Immediate Window, maka hasilnya seperti ini:
?bacaTeksFile Pembacaan pertama: Contoh For Writing 1 Contoh For Writing 2 Contoh For Appending 1 Contoh For Appending 2 Pembacaan kedua, mengulang pembacaan pertama dengan cara berbeda:
Saat pertama kali file teks dibaca, isinya disimpan dalam variable string strIsi. Saat file teks itu dibaca untuk kedua kalinya (melalui Do While...Loop), tidak ada isi file yang bisa ditampilkan karena posisi pembacaan telah berada di akhir file. Untuk membacanya kembali, maka kita harus menutup file teks itu dan membukanya kembali. Untuk menutup file teks, kita menggunakan metode Close. Sebagai contoh, dengan mengaktifkan baris 13 dan 14 pada fungsi bacaTeksFile, seperti berikut ini, maka pembacaan kedua berhasil dilakukan.
oFile.Close Set oFile = fso.OpenTextFile("D:\SoftwareAkuntansi\ElexMedia3\BonusCD\Final\201605312040.txt", 1)
Dengan mengaktifkan kode di atas, posisi pembacaan akan kembali berada di awal file. Kode program berikutnya kemudian dapat dijalankan dengan sempurna. Adapun isi pembacaan kedua sama dengan isi pembacaan pertama.
Comments
Post a Comment