bab8 pemprosesan fail
TRANSCRIPT
BAB LAPAN: PEMPROSESAN FAIL
FAIL DATA DAN FAIL PROJEK
Fail merupakan sebarang maklumat yang di simpan di dalam cakera dan diberi nama yang unik.
Fail data merupakan fail yang mengandungi maklumat manakala fail projek, merupakan fail
aplikasi yang boleh dilarikan. Di dalam bab ini, kita akan mempelajari fail data iaitu fail yang
mengandungi maklumat sebenar seperti nama, alamat clan sebagainva. Fail data digunakan bagi
menyimpan maklumat yang banyak kerana failnya lebih kecil jika dibandingkan dengan
pangkalan data.
Terminologi Fail Data
Di dalam bab 7 (Pangkalan Data), kita telah mengenali terminologi seperti rekod, medan (elemen
data), kunci medan atau kunci rekod.
Rekod - merupakan perwakilan data keseluruhan bagi satu item, manusia atau transaksi.
Medan - digunakan untuk menyimpan elemen data seperti no. matrik, no. akaun, nama,
alamat.
Kunci medan - (key field) merupakan medan yang unik bagi mewakilkan rekod.
Medan
Matrik Nama Alamat Tetap Kolej Program11213 Ali bin Abu No 13 Jalan
Kuching, KLKolej 11 Diploma Sains
Komputer22343 Ahmad bin
Hasan56 Lot 32, Jalan Melewar, Pahang
Kolej 10 Bacelor Sains Komputer
23333 Mohamad Hanif
33 Blok Meranti Taman Sri Jaya
Kolej 6 Diploma Sains Komputer
24645 Adriana Ahmad
4 Jalan Kembara 1, KL
Kolej 8 Bacelor Sains Komputer
Rekod/Baris
Pemprosesan Fail
Mohd Farid JaafarJSM, FSKTM, UPM
99
ORGANISASI FAIL
Organisasi fail merupakan kaedah bagaimana data disusun, disimpan dan dicapai. Terdapat 2
jenis organisasi fail iaitu fail jujukan (sequential file) dan fail rawak (random file). Kita akan
mempelajari cara untuk membaca dan menulis data ke dalam fail-fail tersebut.
Membuka dan Menutup Fail Data
Terdapat 3 langkah yang perlu diikuti bagi memproses fail data:
1. Buka fail - sebelum data dimasukkan ke dalam cakera atau membaca dari cakera,
fail perlu dibuka terlebih dahulu. Secara amnya, fail dibuka di dalam
tatacara Form_Load.
2. Baca atau Tulis rekod data.
3. Tutup fail - fail mesti ditutup semula selepas dibuka.
Pernyataan Untuk Membuka Fail
Open "FileName" For {Input | Output | Append | Random} As #FileNumber [Len = RecLenght]
FileName Merupakan nama fail beserta kedudukannya.
FileNumber Nombor bagi fail dari 1 hingga 511.
RecLength Panjang bagi satu-satu rekod dari 1 hingga 32,767 karakter.
Mod Fail Keterangan
Output Digunakan untuk data yang dihasilkan oleh projek dan akan ditulis ke dalam
disk. Data baru akan ditulis di awal fail (BOF), overwrite data sedia ada.
Input Data yang akan dimasukkan ke dalam projek dari disk. Mod ini akan membaca
data yang sebelumnya telah disimpan di fail.
Append Digunakan untuk data yang dihasilkan oleh projek dan akan ditulis ke dalam
disk. Data baru akan dimasukkan di akhir kandungan fail.
Random Mod untuk sama ada data adalah input atau output, dan data boloh dicapai
oleh banyak cara.
Pemprosesan Fail
Mohd Farid JaafarJSM, FSKTM, UPM
100
Contoh:
Open "A:\DataFile.dat" For Output As # 1
Open "C:\VB6\ChO7O1\Names.txt" For Input As 42
Pernyataan Untuk Menutup Fail
Close [#FileNumber]
Contoh:
Close #l Close #1, #2 Close
Digunakan untuk menutup fail data yang telah dibuka. Sekiranya tidak meletakkan nombor fail,
semua fail yang telah dibuka akan ditutup semuanya.
F u n g s i FreeFile
Apabila membuka fail, setiap fail harus diberi nombor. Bagi aplikasi yang menggunakan
banyak fail mungkin akan timbul masalah untuk memastikan nombor fail tidak bertindih. Bagi
mengatasi masalah ini, gunakan pernyataan FreeFile di mana FreeFile akan menentukan
nombor fail dan memastikan tiada pertindihan nombor berlaku.
Contoh:
Dim intFileNumber As Integer
intFileNumber = FreeFile 'dapatkan sebarang nombor
Open "File.dat" For Output As #intFileNumber
Pemprosesan Fail
Mohd Farid JaafarJSM, FSKTM, UPM
101
Memaparkan Kandungan Fail Data
Kandungan fail data boleh dilihat menggunakan sebarang text editor seperti Notepad atau
Wordpad. Bagi fail jujukan, medan data dipisahkan oleh koma manakala bagi fail rawak,
susunan karakternya agak sukar dibaca kerana mempunyai medan numerik seperti integer,
single, currency yang disimpan menggunakan 2 atau 4 bait yang boleh difahami oleh fail
projek.
FAIL JUJUKAN
Fail jujukan mengandungi elemen data yang disimpan secara berturutan. Apabila membaca data
dari cakera, data harus dibaca dengan cara bagaimana data telah ditulis. Untuk membaca sebarang
elemen data, elemen akan dibaca secara berturutan sehingga elemen yang dicari dijumpai.
Apabila ingin menulis data ke dalam cakera, setiap medan string akan diletakkan di dalam
quotation mark (" ") dan setiap medan dipisahkan dengan koma. Setiap rekod akan dipisahkan
dengan carriage return (<CR>). Contoh data bagi fail jujukan:
"Ahmad", "No 344, Jalan Lama", "Seri Kembangan", "Selangor", “33333"
"Ali", "18 Blok 3, Taman Sri Jasa", "Serdang Jaya", "Selangor", "23123"
"Bakar", "456 Blok Meranti", "Taman Sri Serdang", "Selangor", "54367"
Menulis Data Ke dalam Fail Jujukan
Sebelum data dapat ditulis, fail harus dibuka menggunakan mode Output atau Append. Senarai
medan boleh terdiri daripada pernyataan string (string expression), pernyataan numerik (numeric
expression) dan dipisahkan oleh koma atau semikolon.
Write #FileNumber, ListOfFields
Contoh:
Write #1, txtAccount.Text, txtDescription.Text. txtPrice.Text
Write #2, strAccount
Write #intFileNum, mintCount; mintQuantity; mcurTotal
Pemprosesan Fail
Mohd Farid JaafarJSM, FSKTM, UPM
102
Membaca Data di dalam Fail Jujukan
Bagi mendapatkan data dari fail jujukan, fail tersebut perlu dibuka menggunakan mode Input.
Kemudian pernyataan Input # akan digunakan. FileNumber pada pernyataan Input # merupakan
nombor bagi fail yang telah dibuka. Setiap medan dipisahkan dengan koma.
Input #FileNumber, ListOfFields
Contoh:
Input #1, lblName.Caption, lblStreet.Caption, lblCity.Caption
Input #2, strAccount
Input #intFileNum, intSavedCount, intSavedQuantity, curSavedTotal
FAIL RAWAK (RANDOM FILE)
Perbezaan antara Fail jujukan dan fail rawak ialah data boleh dibaca dan ditulis dalam sebarang
bentuk/cara. Bagi fail jujukan, untuk membaca sebarang elemen data. Elemen akan dibaca secara
berturutan dari awal rekod sehingga elemen yang dicari dijumpai. Fail rawak membenarkan
capaian data secara rawak di mana setiap rekod diberi nombor. Data dicapai menggunakan
nombor tersebut tanpa perlu mengetahui kedudukan rekod.
Nama Alamat Tetap Kolej Program(1) Ali bin Abu No 13 Jalan
Kuching, KLKolej 11 Diploma Sains
Komputer(2) Ahmad bin
Hasan56 Lot 32, Jalan Melewar, Pahang
Kolej 10 Bacelor Sains Komputer
(3) Mohamad Hanif
33 Blok Meranti Taman Sri Jaya
Kolej 6 Diploma Sains Komputer
(4) Adriana Ahmad
4 Jalan Kembara 1, KL
Kolej 8 Bacelor Sains Komputer
Semua rekod bagi fail rawak mempunyai saiz yang sama. Medan bagi setiap rekod juga
ditentukan saiznya.
Pemprosesan Fail
Mohd Farid JaafarJSM, FSKTM, UPM
103
Menentukan Struktur Rekod bagi Fail Rawak
Sebelum membaca atau menulis fail rawak, struktur rekod mestilah ditentukan terlebih dahulu
menggunakan pernyataan Type/End Type. Contoh:
Private type StrukturPelajar
strNama As String * 20
strAlamat As String * 20
strKolej As String * 12
strProgram As String * 20
End Type
Dim mRekodPelajar As StrukturPelajar
Membuka Fail Rawak
Gunakan penyataan Open dengan mode Random. Mod ini membenarkan kita memberikan
input dan output kepada fail yang sama tanpa perlu membuka dan menutup fail tersebut.
Open "C:\Data\Nama.txt" For Random As #1 Len = 72
Open "A:\Peiajar.dat" For Random As #2 Len = Len (mRekodPelajar)
Len (Length) merupakan panjang bagi sate rekod.
Menulis Data Ke dalam Fail Rawak
Data ditulis menggunakan pernyataan Put dan menentukan nombor rekod yang ditulis.
Put [#]FileNumber, [RecordNumber], RecordName
Contoh:
Put #l, intNomborRekod, mRekodPelajar
Put #2, 4, mRekodPelajar
Pemprosesan Fail
Mohd Farid JaafarJSM, FSKTM, UPM
104
Mencapai Data dari Fail Rawak
Data ditulis menggunakan pernyataan Get dan menentukan nombor rekod yang ingin dicapai.
Get [#]FileNumber, [RecordNumber], RecordName
Contoh:
Get #1, intNomborRekod, mRekodPelajar
Get #2, 4, mRekodPelajar