Algorithm and Programming 05-12-2018
File Processing:
File Processing adalah proses untuk membuat, membaca, menyimpan dan memanipulasifile.
file Processing ada 2 kegiatan utama membuka file dan menutup file (fopen dan fclose)
file yang dibuka harus ditutup supaya apa yang telah dilakukan tidak hilang.
dalam membuka file ada beberapa mode sepert "a", "w", "r", "w+" , "r+"
untuk materi ini akan diberikan coding panjang dan akan dijelaskan cara kerjanya
Contoh Program:
#include<stdio.h>
#include<string.h>
FILE* p; FILE*xb; // Panggil File
int count = 0;
struct Toko {
char nama_barang[100];
int qty_barang;
int harga_barang;
} binusmart[100];
void read_file() {
// R W A R+ W+
p = fopen("datamarket.txt", "r");
if(p == NULL) { // kalau file belom tidak ada
printf("File not found 'datamarket' not found");
} else {
// kalau filenya ada
while(!feof(p)) {
// baca file
// separated by "$" / # / ,
fscanf(p, "%[^#]#%d#%d\n", &binusmart[count].nama_barang, &binusmart[count].qty_barang, &binusmart[count].harga_barang);
// add count untuk jumlah barang
count++; // atau count += 1;
}
}
// close file
fclose(p);
}
void write_file() {
// R W A R+ W+
p = fopen("datamarket.txt", "w");
for(int i = 0; i < count; i++) {
fprintf(p, "%s#%d#%d\n", binusmart[i].nama_barang, binusmart[i].qty_barang, binusmart[i].harga_barang);
}
// close file
fclose(p);
}
void add_data(char* nama_barang, int qty, int harga_barang) {
// passing parameter ke dalam data Structure
strcpy(binusmart[count].nama_barang, nama_barang);
binusmart[count].qty_barang = qty;
binusmart[count].harga_barang = harga_barang;
count++;
}
void lihat_data() {
for(int i = 0; i < count; i++) {
printf("%s %d %d\n", binusmart[i].nama_barang, binusmart[i].qty_barang, binusmart[i].harga_barang);
}
}
void insert(char* nama_barang, int qty, int harga_barang) {
p = fopen("datamarket.txt", "a");
strcpy(binusmart[count].nama_barang, nama_barang);
binusmart[count].qty_barang = qty;
binusmart[count].harga_barang = harga_barang;
fprintf(p, "%s#%d#%d\n", binusmart[count].nama_barang, binusmart[count].qty_barang, binusmart[count].harga_barang);
count++;
}
void write_binary_file() {
int angka[] = {1, 2, 3,4 ,5};
xb = fopen("binary.txt", "wb");
fwrite(angka, sizeof(angka), 1, xb);
fclose(xb);
}
void read_binary_file() {
int angka[6];
xb = fopen("binary.txt", "rb");
fread(angka, sizeof(angka), 1, xb);
for (int i = 0; i < 6 ; i ++ ) {
printf("%d ", angka[i]);
}
fclose(xb);
}
int main() {
read_file();
add_data("Kopi", 12, 2000);
write_file();
insert("Append", 10 , 100);
lihat_data();
write_binary_file();
read_binary_file();
return 0;
}
Pertama untuk mengakses file perlu membuat sebuah membuat file pointer
FILE* p;
setiap mau melakukan sesuatu kepada file baik access maupun edit perlu di openterlebih dahulu seperti:
p = fopen("datamarket.txt", "r");
tulisan dengan warna ini menunjukan file yang mau dibuka
warna ini menunjukan mode. ada beberapa mode
"r" = membaca atau read file
"w" = write atau menulis (menulis berarti menghapus semua dari file tersebut)
"a" = append atau menambahkan
"wb" = menulis dalam binary
"rb" = membaca dalam binary
Bila file dengan nama tersebut tidak ada maka nilai p adalah NULL.
setelah dibuka file tersebut dapat digunakan
ada beberapa perintah yang dapat dilakukan pada file seperti
fscanf = membaca isi dari file
fprintf = mencetak kedalam isi file. (bukan mencetak dalam sistem bedakan dengan printf)
setelah mengunakan file, file HARUS ditutup dengan fclose(nama pointer file) diingatkan kembali
- Stay curious -
NIM: 2201762723
binus.ac.id
skyconnectiva.com
Hubert Michael Sanyoto
Tidak ada komentar:
Posting Komentar