Advertisement
Guest User

Untitled

a guest
Nov 29th, 2015
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. void rem_book(db *d, char *name) {
  2. void *buffer;
  3. size_t buf_sz = sizeof(int);
  4. buffer = malloc(buf_sz);
  5.  
  6. d->count = d->count - 1;
  7. memcpy_s(buffer, buf_sz, &(d->count), sizeof(int));
  8.  
  9. fseek(d->file, sizeof(int), SEEK_SET);
  10.  
  11. for (int i = 0; i < d->count + 1; i++) {
  12. char *tmp = NULL;
  13. tmp = binary_read_str(d->file);
  14. if (strcmp(tmp, name) == 0) {
  15. free(tmp);
  16. tmp = binary_read_str(d->file);
  17. free(tmp);
  18. tmp = binary_read_str(d->file);
  19. free(tmp);
  20. tmp = binary_read_str(d->file);
  21. free(tmp);
  22. } else {
  23. buf_sz += strlen(tmp) + 1;
  24. buffer = realloc(buffer, buf_sz);
  25. memcpy_s((char*)buffer + buf_sz - strlen(tmp) - 1, strlen(tmp) + 1, tmp, strlen(tmp) + 1);
  26. free(tmp);
  27. tmp = binary_read_str(d->file);
  28. buf_sz += strlen(tmp) + 1;
  29. buffer = realloc(buffer, buf_sz);
  30. memcpy_s((char*)buffer + buf_sz - strlen(tmp) - 1, strlen(tmp) + 1, tmp, strlen(tmp) + 1);
  31. free(tmp);
  32. tmp = binary_read_str(d->file);
  33. buf_sz += strlen(tmp) + 1;
  34. buffer = realloc(buffer, buf_sz);
  35. memcpy_s((char*)buffer + buf_sz - strlen(tmp) - 1, strlen(tmp) + 1, tmp, strlen(tmp) + 1);
  36. free(tmp);
  37. tmp = binary_read_str(d->file);
  38. buf_sz += strlen(tmp) + 1;
  39. buffer = realloc(buffer, buf_sz);
  40. memcpy_s((char*)buffer + buf_sz - strlen(tmp) - 1, strlen(tmp) + 1, tmp, strlen(tmp) + 1);
  41. free(tmp);
  42. }
  43. }
  44.  
  45. freopen_s(&(d->file), d->filename, "w+b", d->file);
  46. fwrite(buffer, buf_sz, 1, d->file);
  47. freopen_s(&(d->file), d->filename, "r+b", d->file);
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement