Advertisement
Agus_Darmawan

replace file erro

Jul 30th, 2019
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.63 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. void tambahIsi();
  6. void tampilkanIsi();
  7. void replaceIsi();
  8. void hapus();
  9.  
  10. FILE *f;
  11. int fileHandle;
  12. long int ukuranFile;
  13. int i;
  14.  
  15. typedef struct{
  16.     char nama[100];
  17.     char alamat[10];
  18. } biodata;
  19.  
  20. biodata b;
  21.  
  22. void tambahIsi(){
  23.     f = fopen("textPercobaan.txt","a");
  24.     if(f == NULL){
  25.         printf("File tidak bisa diproses!");
  26.         exit(1);
  27.     }
  28.     i = 0;
  29.     printf("Masukkan nama anda: "); fflush(stdin); gets(b.nama);
  30.     printf("Masukkan alamat: "); fflush(stdin); gets(b.alamat);
  31.     fwrite(&b, sizeof(b),1,f);
  32.     fclose(f);
  33. }
  34.  
  35. void tampilkanIsi(){
  36.     f = fopen("textPercobaan.txt","r");
  37.     if(f == NULL){
  38.         printf("File tidak bisa diproses!");
  39.         exit(1);
  40.     }
  41.     i = 1;
  42.     fileHandle = fileno(f);
  43.     ukuranFile = filelength(fileHandle);
  44.     if(ukuranFile == -1L){
  45.         printf("Tidak bisa mendapatkan ukuran file");
  46.         fclose(f);
  47.         exit(1);
  48.     }else if(ukuranFile == 0){
  49.         printf("File masih kosong");
  50.         tambahIsi();
  51.     }else{
  52.         printf("====== Tampilkan Semua Data ======\n");
  53.         for(;;){
  54.             fread(&b,sizeof(b),1,f);
  55.             if(feof(f)) break;
  56.             printf("%i. Nama: %s\n",i,b.nama);
  57.             printf("    Alamat: %s\n",b.alamat);
  58.             i++;
  59.         }
  60.         fclose(f);
  61.         printf("===================================\n");
  62.     }
  63. }
  64.  
  65. void replaceIsi(){
  66.     char namaBaru[30];
  67.     char alamatBaru[30];
  68.     int found;
  69.     char cari[20];
  70.  
  71.     f = fopen("textPercobaan.txt","r+");
  72.     if(f == NULL){
  73.         printf("File tidak bisa diproses!");
  74.         exit(1);
  75.     }
  76.  
  77.  
  78.     printf("Masukkan nama yang ingin direplace: "); fflush(stdin); gets(cari);
  79.  
  80.     found = 0;
  81.     while((fread(&b,sizeof(b),1,f)) > 0 && found == 0){
  82.         if(strcmp(cari,b.nama)==0){
  83.             printf("Nama baru: "); fflush(stdin); gets(b.nama);
  84.             printf("Alamat baru: "); fflush(stdin); gets(b.alamat);
  85.             fseek(f,-(long)sizeof(b),1);
  86.             fwrite(&b, sizeof(b),1,f);
  87.         }
  88.     }
  89.  
  90.     fclose(f);
  91.  
  92.  
  93.  
  94. }
  95.  
  96. void hapus(){
  97.     FILE *f2;
  98.     char del[20];
  99.     printf("Masukan nama yang ingin dihapus : "); fflush(stdin);gets(del);
  100.  
  101.     f = fopen("textPercobaan.txt","r");
  102.     f2 = fopen("temp.txt","w");
  103.     rewind(f);
  104.  
  105.     while(fread(&b,sizeof(b),1,f) > 0){
  106.        if(strcmp(del,b.nama)!=0){
  107.             fwrite(&b,sizeof(b),1,f2);
  108.             printf("berhasil");
  109.        }else if(strcmp(del,b.nama)==0){
  110.            printf("salah");
  111.        }
  112.     }
  113.  
  114.     fclose(f2);
  115.     fclose(f);
  116.     remove("textPercobaan.txt");
  117.     rename("temp.txt","textPercobaan.txt");
  118.  
  119. }
  120.  
  121. int main(){
  122.     char pilihMenuUtama;
  123.  
  124.  
  125.     while(pilihMenuUtama != '5'){
  126.         printf("Menu Utama\n");
  127.         printf("1. tampilkan isi file\n");
  128.         printf("2. tambahkan isi file\n");
  129.         printf("3. replace isi\n");
  130.         printf("4. bersihkan layar\n");
  131.         printf("5. keluar\n");
  132.         printf("6. Hapus\n");
  133.         printf("Pilihan anda: "); pilihMenuUtama = getche();
  134.         printf("\n\n\n");
  135.         switch(pilihMenuUtama){
  136.             case '1':{
  137.                 tampilkanIsi();
  138.                 break;
  139.             }
  140.             case '2':{
  141.                 tambahIsi();
  142.                 break;
  143.             }
  144.             case '3':{
  145.                 replaceIsi();
  146.                 break;
  147.             }
  148.             case '4':{
  149.                 system("cls");
  150.                 break;
  151.             }
  152.             case '6':{
  153.                 hapus();
  154.                 break;
  155.             }
  156.         }
  157.     }
  158.     exit(0);
  159.     return 0;
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement