alexa-tracking

Main Content

1024
1024
KASKUS
51
244
https://www.kaskus.co.id/thread/52c94feebbf87b6a688b46a0/ask-cara-deleteedit--operasi-file
[ASK] cara DELETE,EDIT Operasi File
Code:
#include <stdio.h>
#include <stdlib.h>

void Menu();
void Tambah();
void Hapus();
void Tampil();
//void Edit();
//void Cari();
void Exit();

struct element{
int menu;
char ulang;
char judulbuku[40];
char kodebuku[30];
char pengarang[40];
char status[10];
}buku;

int main(void){
int a;
for(a=0;;a++){
Menu();
}
return 0;
}

void Menu()
{
int n;
printf("\n-------------------------------------");
printf("\n E-LIBRARY INFORMATION SYSTEM");
printf("\n-------------------------------------");
printf("\n1. Tambah Buku");
printf("\n2. Hapus Data");
printf("\n3. Tampilkan Data Buku");
printf("\n4. Edit Status Buku");
printf("\n5. Cari Buku");
printf("\n6. Exit");
printf("\n-------------------------------------");
printf("\nMasukan Pilihan Anda < 1 / 2 / 3 / 4 / 5 / 6 >: ");
scanf("%d", &n);

switch(n){
case 1:
Tambah();
break;
case 2:
Hapus();
break;
case 3:
Tampil();
break;
// case 4:
// Edit();
// break;
// case 5:
// Cari();
// break;
case 6:
printf("\nTerimakasih Telah Menggunakan Program Kami");
exit(0);
default:
printf("\nError! Anda Memasukan Nomor Yang Salah\nSilahkan Coba Lagi");
break;
}
}

void Tambah()
{
struct element buku;
FILE *in;

in = fopen("D:/Progdas/Testing/test23/data.txt","a+");

printf("Masukan Kode Buku : ");
fflush(stdin);
fgets(buku.kodebuku,30,stdin);

printf("Masukan Judul Buku : ");
fflush(stdin);
fgets(buku.judulbuku,40,stdin);

printf("Masukan Nama Pengarang : ");
fflush(stdin);
fgets(buku.pengarang,40,stdin);

printf("Masukan Status Buku : ");
fflush(stdin);
fgets(buku.status,10,stdin);

if (in != NULL)
{

fprintf(in,"Kode Buku : %s \n",buku.kodebuku);
fprintf(in,"Judul Buku : %s \n",buku.judulbuku);
fprintf(in,"Pengarang : %s \n",buku.pengarang);
fprintf(in,"Status : %s \n",buku.status);
fprintf(in,"-----------------------------------------------------\n");
}
else
{
printf("Fatal error : data.txt tidak bisa dibuka");
exit(EXIT_FAILURE);
}
fclose(in);

printf("\nData Buku Baru Telah ditambahkan.");
getchar();
system("cls");
return ;
}

void Hapus()
{
remove("D:/Progdas/Testing/Test23/data.txt");

printf("\nFile Data telah terhapus\n");
return;

}

void Tampil()
{
struct element buku;
FILE *in;
char karakter;

in = fopen("D:/Progdas/Testing/Test23/data.txt","r");

if (in != NULL)
{
while ((karakter = getc(in)) != EOF)
{
printf("%c",karakter);
}
}
else
{
printf("Kesalahan : File data tidak ditemukan");
exit(EXIT_FAILURE);
}

printf("\n");

return;


}


Gan mau nanya ini cara edit file sama hapus gmna ya gan emoticon-Bingung (S)

ini outputnya gan

[ASK] cara DELETE,EDIT Operasi File
Misalnya kita mau ngedit atau hapus data yang di tengah,
Cara nya gmna ya gan?
File-nya berjenis apa gan? sekuensial ato akses random?

kalo sequensial, harus loe salin dari awal sampe akhir ke linklist, lalu loe tulis ulang dari awal sampe akhir, kecuali record yang di-delete.

kalo akses random, mesti loe sediakan 1 byte untuk penanda apakah record yang bersangkutan hidup atau mati (delete) ... lantas bagian menu baca juga harus menaatinya, yang mati ga usah dibaca, lompat ke record berikutnya.

Maaf gan, cuma bisa ngasih garis besarnya ... buat detilnya, berhubung gw sudah banyak lupa programming pake C, jadi ... emoticon-Hammer (S) .. agan coba saja baca referensi fungsi-fungsi di C, yang mana yang sekuensial dan akses random.