Pendahuluan
Bahasa C bisa membuka membaca dan menulis file. Katakunci FILE digunakan untuk pointer. Dalam bekerja file bisa menggunakan katakunci fopen("namafile","mode") untuk memulai membuka atau dan membaca atau dan menulis file atau fclose() untuk menuntup file tersebut. Kita akan menggunakan fprintf(), fscanf(), fread(), fwrite(), fseek() dan lainya untuk memudahkan dalam pengguanaanya dalam project yang digunakan.
Isi konten
Tipe File
Tipe file yang digunakan untuk data yakni 2 file file text yang biasanya berekstensi .txt dan file binari yang berextensi .bin atau bisa juga .dat File text mudah dibaca sedangkan file binari susah dibaca karena berisi data biner yah 0 dan 1. File binari bagus digunakan untuk data yang besar dan keamanan yang bagus dibanding file text yang mudah dibaca.
Pilihan mode pada fopen yakni
r membuka file untuk membaca tetapi file tersebut harus ada
w membuka file untuk menulis tidak perlu file ada atau tidak
a membuka untuk menambahkan data di akhirnya tidak perlu file ada atau tidak
r+ membuka file untuk membaca dan menulis dari pertamanya file yang akan dibuka harus ada
w+ membuka file untuk membaca dan menulis dengan menuliskan ulang isi file tersebut
a+ membuka untuk membaca dan menulis file dengan menambahkan datanya pada bagian akhirnya.
rb membuka file binari untuk membaca tetapi file tersebut harus ada
wb membuka file binari untuk menulis tidak perlu filenya ada atau tidak
ab membuka untuk menambahkan data di akhirnya tidak perlu file binari ada atau tidak
rb+ membuka file binari untuk membaca dan menulis dari pertamanya file yang akan dibuka harus ada
wb+ membuka file binari untuk membaca dan menulis dengan menuliskan ulang isi file tersebut
ab+ membuka untuk membaca dan menulis file binari dengan menambahkan datanya pada bagian akhirnya.
Tulis File Text
Dibawah ini merupakan file tulistext.c yang akan menulis isi dari file program.txt yang (akan) berada dalam satu file yang sama dengan file tulistext.c. Untuk menambahkan isi file kamu bisa mengganti dengan mode a. Lihatlah apa yang ada di file program.txt, ya benar semua kata yang telah dimasukan.
#include <stdio.h>
int main()
{
char kata[1000];
FILE *fptr;
fptr = fopen("program.txt","w");
if(fptr == NULL)
{
printf("Error!");
}
printf("Masukan kata Disini: ");
scanf("%s",kata);
fprintf(fptr,"%s",kata);
fclose(fptr);
return 0;
}
Baca File Text
Kita akan membuat bacatext.c untuk membaca file program.txt pada folder yang sama dengan file bacatext.c. Isi file bacatext.c yakni
#include <stdio.h>
int main()
{
int num;
FILE *fptr;
if ((fptr = fopen("program.txt","r")) == NULL){
printf("Error! opening file");
// Program exits if the file pointer returns NULL.
}
fscanf(fptr,"%d", &num);
printf("Value of n=%d", num);
fclose(fptr);
return 0;
}
Tulis File Binari
Dalam penulisan file binari ini saya menggunakan struktur dan fungsi fwrite(). Untuk formatnya yakni fwrite(alamatData, ukuranData, angka2Data, pointerFile);. Saya membuat file tulisbinari.c dengan isi:
#include <stdio.h>
typedef struct {
int id;
char name[20];
} item;
int main() {
FILE *fptr;
item first, second, secondf;
//buat data2 untuk dimasukan ke dalam file
first.id = 10276;
strcpy(first.name, "Widget");
second.id = 11786;
strcpy(second.name, "Gadget");
/* write records to a file */
fptr = fopen("info.bin", "wb");
fwrite(&first, 1, sizeof(first), fptr);
fwrite(&second, 1, sizeof(second), fptr);
fclose(fptr);
return 0;
}
Baca File Binari
Mari kita baca file binari dengan fungsi fread(). Format umumnya yakni fread(alamatData, ukuranData, angka2Data, pointerFile);. Contoh penggunaanya yakni:
#include <stdio.h>
struct item{
int id;
char name[20];
} item;
int main() {
FILE *fptr;
struct item info;
int n;
/* read array from file */
fptr = fopen("info.bin", "rb");
for(n = 1; n < sizeof(struct item)/12+1; ++n){ // 12 didapat dari jumlah ukuran data perbaris yakni int = 4 dan char = 8
fread(&info, sizeof(struct item), 1, fptr);
printf("%d \t id %d \t nama %s \n", n, info.id, info.name);
}
fclose(fptr);
return 0;
}
Cari Data File Binari
Berikut ini merupakan penggunaan fungsi fseek() yang memiliki format umum fseek(FILE * stream, long int offset, int whence);. Dibawah ini merupakan penggunaan dalam mencari data yang ada pada file binari dengan mengurutkan terbalik.
#include <stdio.h>
typedef struct {
int id;
char name[20];
} item;
int main() {
FILE *fptr;
item cari;
fptr = fopen("info.bin", "rb");
//cari data ke-1 dimulai dari index 0
fseek(fptr, 0*sizeof(item), SEEK_SET);
fread(&cari, 1, sizeof(item), fptr);
printf("%d %s\n", cari.id, cari.name);
fclose(fptr);
return 0;
}
Untuk Catatan lebih lanjut tentang fseek yakni:
SEEK_SET Memulai dari depan file.
SEEK_END Memulai dari belakang file.
SEEK_CUR Memulai dari lokasi kursor berada di dalam file.
Semoga bermanfaat dan salam sukses
Tidak ada komentar:
Posting Komentar