Advertisement
Guest User

dodavanje

a guest
Jan 29th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1. transPrim tr;
  2. int adr;
  3. int i;
  4. baketPrim baket;
  5. tr = unesiTransakciju(); //pozivanje funkcije koja omogucava upisivanje podataka sa tastature
  6. adr = poz(tr.key); //u adr stavlja adresu baketa koji se racuna u f-ji poz
  7. FILE *f = fopen(nazivAktivne, "rb+");
  8. long ofset = (adr-1)*sizeof(baketPrim); //racuna koliko treba da se odmakne od pocetka datoteke da bi stao na pocetnu poziciju zeljenog baketa
  9. int greska = fseek(f, ofset, SEEK_SET); //fseek(funkcija za podesavanje pozicije u fajlu) vraca vrednost 0, ako sve uradi, a u suprotnom vraca -1.
  10. if (greska == 0)
  11. {
  12. fread(&baket, sizeof(baketPrim), 1, f);
  13. for (i=0; i<b; i++)
  14. {
  15. if ((baket[i].status == 'z') && (baket[i].key == tr.key))
  16.  
  17. {
  18. printf("kljuc baket je %d\n", baket[i].key);
  19. printf("Vec postoji slog sa ovim kljucem u primarnoj datoteci\n");
  20. fclose(f);
  21. return;
  22. }
  23.  
  24. if ((baket[i].status == 's') || (baket[i].status == 'i'))
  25. {
  26. baket[i] = tr;
  27. fseek(f, ofset, SEEK_SET);
  28. fwrite(&baket, sizeof(baketPrim), 1, f);
  29.  
  30. fclose(f);
  31. printf("Izlazi iz funkcije pre return naredbe \n");
  32. return;
  33. }
  34. }
  35. }
  36. fclose(f);
  37. printf("Usli smo u zonu\n");
  38. zonaPrekoracenja = fopen(nazivZone, "rb+");
  39. i=0;
  40. while(fread(&baket, sizeof(baketPrim), 1, zonaPrekoracenja))
  41. {
  42. for (i=0; i<b; i++)
  43. {
  44.  
  45. if ((baket[i].status == 'z') && (baket[i].key == tr.key))
  46. {
  47. printf("Vec postoji slog sa ovim kljucem u zoni prekoracenja\n");
  48. fclose(zonaPrekoracenja);
  49. return;
  50. }
  51. if ((baket[i].status == 's') || (baket[i].status == 'i'))
  52. {
  53. baket[i] = tr;
  54. fseek(zonaPrekoracenja, 0, SEEK_SET);
  55. fwrite(&baket, sizeof(baketPrim), 1, zonaPrekoracenja);
  56. printf("Izlaz iz zone pre return naredbe");
  57. fclose(zonaPrekoracenja);
  58. return;
  59. }
  60. }
  61. }
  62. fclose(zonaPrekoracenja);
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement