Advertisement
Guest User

Untitled

a guest
Jun 18th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1.  
  2. bool MY_DATA_Init(MY_DATA *ob, char *sstr)
  3. {
  4. size_t len = strlen(sstr);
  5. if(len)
  6. {
  7. ob->str = (char *)malloc((len+1)*sizeof(char));
  8. if(!ob->str)
  9. return 0;
  10. strcpy_s(ob->str, _msize(ob->str), sstr);
  11. }
  12. else
  13. ob->str = NULL;
  14.  
  15. ob->fileOffset = -1;
  16. return 1;
  17. }
  18.  
  19.  
  20. void MY_DATA_Free(MY_DATA *ob)
  21. {
  22. if(ob->str)
  23. free(ob->str);
  24. ob->str = NULL;
  25. ob->fileOffset = -1;
  26. }
  27.  
  28. bool MY_DATA_Write(MY_DATA *t_ob)
  29. {
  30. size_t no_it = _msize(t_ob)/sizeof(MY_DATA);
  31. size_t it, nowrittenwords, nowordstobewrite;
  32. for(it=0; it<no_it; ++it)
  33. {
  34. t_ob[it].fileOffset = _ftelli64(t_ob[it].pf);
  35. nowrittenwords = fwrite((void *)(t_ob+it), sizeof(MY_DATA), 1, t_ob->pf);
  36. if(nowrittenwords != 1)
  37. return 0;
  38. nowordstobewrite = strlen(t_ob[it].str)+1;
  39. nowrittenwords = fwrite((void *)(t_ob[it].str), sizeof(char), nowordstobewrite, t_ob->pf);
  40. if(nowrittenwords != nowordstobewrite)
  41. return 0;
  42. }
  43. return 1;
  44. }
  45.  
  46.  
  47. bool MY_DATA_Read(MY_DATA *t_ob)
  48. {
  49. size_t no_it = _msize(t_ob)/sizeof(MY_DATA);
  50. size_t it, nowreadwords, nowordstoberead;
  51. for(it=0; it<no_it; ++it)
  52. {
  53. nowreadwords = fread((void *)(t_ob+it), sizeof(MY_DATA), 1, t_ob->pf);
  54. if(nowreadwords != 1)
  55. return 0;
  56. nowordstoberead = _msize(t_ob[it].str)/sizeof(char);
  57. nowreadwords = fread((void *)(t_ob[it].str), sizeof(char), nowordstoberead, t_ob->pf);
  58. if(nowreadwords != nowordstoberead)
  59. return 0;
  60. }
  61. return 1;
  62. }
  63.  
  64. void MY_DATA_PutFilePos(MY_DATA *ob)
  65. {
  66. _fseeki64(ob->pf, ob->fileOffset, SEEK_SET);
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement