Menghapus Data pada File dengan QBasic
Sebelum anda
mempelajari kode berikut, anda harus sudah paham tentang input data dan tampil data pada Qbasic.
Menghapus data pada file dengan Qbasic memang sedikit berbeda. Dalam qbasic, tidak ada perintah delete atau sejenisnya untuk menghapus data. Untuk menghapus data kita harus sedikit berfikir yaitu dengan menggabungkan perintah pembacaan (GET) dan penyimpanan (PUT). Logikanya jika kita ingin menghapus salah satu data pada barang.txt (nama file bebas), maka kita harus membuat file baru (misalnya barang2.txt) untuk memindahkan file yang tidak ingin dihapus di barang.txt ke file barang2.txt. Kemudian kita
menghapus
file barang.txt dan mengganti nama barang2.txt menjadi barang.txt.Menghapus data pada file dengan Qbasic memang sedikit berbeda. Dalam qbasic, tidak ada perintah delete atau sejenisnya untuk menghapus data. Untuk menghapus data kita harus sedikit berfikir yaitu dengan menggabungkan perintah pembacaan (GET) dan penyimpanan (PUT). Logikanya jika kita ingin menghapus salah satu data pada barang.txt (nama file bebas), maka kita harus membuat file baru (misalnya barang2.txt) untuk memindahkan file yang tidak ingin dihapus di barang.txt ke file barang2.txt. Kemudian kita
Bingung? Download saja programnya di sini.
Kode:
CLS
TYPE barang
kode AS STRING * 5
nama AS STRING * 15
jenis AS STRING * 10
harga AS LONG
stok AS INTEGER
END TYPE
DIM kodecr AS STRING * 5
DIM SHARED brg AS barang
DIM SHARED panrec, jumrec AS INTEGER
CLOSE #1, #2
panrec = LEN(brg)
OPEN "d:\barang.txt" FOR RANDOM AS #1 LEN = panrec
OPEN "d:\barang2.txt" FOR RANDOM AS #2 LEN = panrec
jumrec = LOF(1) / panrec
COLOR 14
LOCATE 2, 10: PRINT "HAPUS DATA BARANG"
LOCATE 4, 2: INPUT "Masukkan Kode : ", kodecr
FOR i = 1 TO jumrec
GET #1, i, brg
IF UCASE$(brg.kode) = UCASE$(kodecr) THEN
CLS
LOCATE 2, 2: PRINT "KODE : "; brg.kode
LOCATE 3, 2: PRINT "NAMA : "; brg.nama
LOCATE 4, 2: PRINT "JENIS : "; brg.jenis
LOCATE 5, 2: PRINT "HARGA : "; brg.harga
LOCATE 6, 2: PRINT "NAMA : "; brg.stok
LOCATE 8, 2: INPUT "Hapus Data?(Y/T)", jawab$
IF UCASE$(jawab$) = "Y" THEN
FOR i = 1 TO jumrec
GET #1, i, brg
IF UCASE$(brg.kode) <> UCASE$(kodecr) THEN
PUT #2, , brg
END IF
NEXT
CLOSE #1, #2
KILL "d:\barang.txt"
NAME "d:\barang2.txt" AS "d:\barang.txt"
CLS
LOCATE 2, 2: PRINT "Data terhapus"
ELSE
CLS
LOCATE 2, 2: PRINT "Data tidak jadi dihapus"
END IF
EXIT FOR
ELSEIF i = jumrec THEN
CLS
LOCATE 2, 2: PRINT "Data tidak ditemukan"
END IF
NEXT
Komentar
Posting Komentar