Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool MY_DATA_Init(MY_DATA *ob, char *sstr)
- {
- size_t len = strlen(sstr);
- if(len)
- {
- ob->str = (char *)malloc((len+1)*sizeof(char));
- if(!ob->str)
- return 0;
- strcpy_s(ob->str, _msize(ob->str), sstr);
- }
- else
- ob->str = NULL;
- ob->fileOffset = -1;
- return 1;
- }
- void MY_DATA_Free(MY_DATA *ob)
- {
- if(ob->str)
- free(ob->str);
- ob->str = NULL;
- ob->fileOffset = -1;
- }
- bool MY_DATA_Write(MY_DATA *t_ob)
- {
- size_t no_it = _msize(t_ob)/sizeof(MY_DATA);
- size_t it, nowrittenwords, nowordstobewrite;
- for(it=0; it<no_it; ++it)
- {
- t_ob[it].fileOffset = _ftelli64(t_ob[it].pf);
- nowrittenwords = fwrite((void *)(t_ob+it), sizeof(MY_DATA), 1, t_ob->pf);
- if(nowrittenwords != 1)
- return 0;
- nowordstobewrite = strlen(t_ob[it].str)+1;
- nowrittenwords = fwrite((void *)(t_ob[it].str), sizeof(char), nowordstobewrite, t_ob->pf);
- if(nowrittenwords != nowordstobewrite)
- return 0;
- }
- return 1;
- }
- bool MY_DATA_Read(MY_DATA *t_ob)
- {
- size_t no_it = _msize(t_ob)/sizeof(MY_DATA);
- size_t it, nowreadwords, nowordstoberead;
- for(it=0; it<no_it; ++it)
- {
- nowreadwords = fread((void *)(t_ob+it), sizeof(MY_DATA), 1, t_ob->pf);
- if(nowreadwords != 1)
- return 0;
- nowordstoberead = _msize(t_ob[it].str)/sizeof(char);
- nowreadwords = fread((void *)(t_ob[it].str), sizeof(char), nowordstoberead, t_ob->pf);
- if(nowreadwords != nowordstoberead)
- return 0;
- }
- return 1;
- }
- void MY_DATA_PutFilePos(MY_DATA *ob)
- {
- _fseeki64(ob->pf, ob->fileOffset, SEEK_SET);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement