/*In return fills to binary file with updated values */ void write_to_bin(char *inp_file, char *outp_bin_file) { combine_type temp; /*temporary variable*/ FILE *inp_text, /*file pointers text and*/ *outp_bin; /*binary file */ /*opening files*/ inp_text = fopen(inp_file,"r"); outp_bin = fopen(outp_bin_file,"wb"); /*Process updates and writes updated values in same time */ while(!feof(inp_text)){ temp=salary_rise(get_params(inp_text)); fwrite(&temp,sizeof(temp),1,outp_bin); } fclose(inp_text); fclose(outp_bin); }
void read_and_write(const char *file_txt, const char *file_bin) { char str[MAX_SIZE]; char *name; char *surname; char *department; char *class1,*class2; char *tok; char *salary, *degree; combine_type person_info; FILE * inp; FILE * bin_out; inp = fopen(file_txt,"r"); bin_out = fopen(file_bin,"wb+"); while(fgets(str,MAX_SIZE,inp)!=NULL) { /*printf("%s\n",str);*/ tok = strtok(str,","); /*printf("%s\n",tok);*/ if(str[0]=='I') { name =strtok(NULL," "); surname = strtok(NULL,","); department = strtok(NULL,","); class1 = strtok(NULL,","); class2 = strtok(NULL,","); salary = strtok(NULL,","); person_info.person_dcd = 'I'; /*printf("%c\n",person_info.person_dcd);*/ strcpy(person_info.inform.inst.name,name); strcpy(person_info.inform.inst.surname,surname); /* printf("%s\n",person_info.inform.inst.name); printf("%s\n",person_info.inform.inst.surname);*/ strcpy(person_info.inform.inst.department,department); /* printf("%s\n",person_info.inform.inst.department);*/ strcpy(person_info.inform.inst.class1,class1); /* printf("%s\n",person_info.inform.inst.class1);*/ strcpy(person_info.inform.inst.class2,class2); /*printf("%s\n",person_info.inform.inst.class2);*/ person_info.inform.inst.salary = atoi(salary); person_info = salary_rise(person_info); /*printf("%f\n",person_info.inform.inst.salary);*/ } else if(str[0]=='E') { name =strtok(NULL," "); surname = strtok(NULL,","); salary = strtok(NULL,","); degree = strtok(NULL,","); person_info.person_dcd = 'E'; /*printf("%c\n",person_info.person_dcd);*/ strcpy(person_info.inform.empl.name,name); strcpy(person_info.inform.empl.surname,surname); /*printf("%s\n",person_info.inform.empl.name); printf("%s\n",person_info.inform.empl.surname);*/ person_info.inform.empl.salary = atoi(salary); /*printf("%f\n",person_info.inform.empl.salary);*/ person_info.inform.empl.degree = degree[1]; person_info = salary_rise(person_info); /*printf("%c\n",person_info.inform.empl.degree);*/ } fwrite(&person_info,sizeof(combine_type),1,bin_out); } fclose(inp); fclose(bin_out); }