int LoadLastDataSRDFile3() { char strFileName[50]; int reg_ptr = -1; int ln; if(setup_data.zdmroute_name[0]==0) { reg_ptr = Bfile_OpenFile(IniSRDFile, _OPENMODE_READ) ; if (reg_ptr >= 0) { ln=Bfile_GetFileSize(reg_ptr); if(ln>0) { if(ln>=sizeof(setup_data.zdmroute_name)-1) ln=sizeof(setup_data.zdmroute_name)-1; Bfile_ReadFile(reg_ptr, setup_data.zdmroute_name,ln,0) ; setup_data.zdmroute_name[ln]=0; } Bfile_CloseFile(reg_ptr) ; //PopUpWin(1); //locate(7,4);Print(setup_data.zdmroute_name); //GetKey(&key); //sprintf(strFileName,"\\\\crd0\\SRD\\%s",setup_data.zdmroute_name); LoadSRDFile3(setup_data.zdmroute_name); return 1; } } return 0; }
void loadDataFromSave(Game_Data* data) { int i, hasLoadedSave; SaveData dataLoaded; hasLoadedSave = 0; data->fileHandle = Bfile_OpenFile(filename, _OPENMODE_READ); if(data->fileHandle>= 0) { hasLoadedSave = 1; //(char*)data->entry_highscores if(Bfile_ReadFile(data->fileHandle, &dataLoaded, sizeof(dataLoaded), -1) < sizeof(dataLoaded)) hasLoadedSave = 0; else { Bfile_CloseFile(data->fileHandle); Bfile_DeleteFile(filename); } } if(!hasLoadedSave) { for(i = 0; i < 6; i++) { data->entry_highscores[i] = 0.0f; } } else { for(i = 0; i < 6; i++) { data->entry_highscores[i] = dataLoaded.highscores[i]; } } }
int LoadPMFile (const char *file_name_c_a) { FONTCHARACTER file_name_f[30]; char file_name_c[30]; int file_h; sprintf (file_name_c,"\\\\crd0\\PM\\%s",file_name_c_a); PMCharToFont(file_name_c,file_name_f); file_h = Bfile_OpenFile (file_name_f,_OPENMODE_READ); if(file_h>=0){ //jdfroute_clr (&jdfroute); Bfile_ReadFile(file_h,&pmroute,sizeof(PMROUTE),0); pmroute.set = (PMPOINT*)calloc(pmroute.size,sizeof(PMPOINT)); Bfile_ReadFile(file_h,pmroute.set,sizeof(PMPOINT)* pmroute.size,sizeof(PMROUTE)); Bfile_CloseFile (file_h); return 1; } return 0; }
int LoadSRDFile3 (const char *file_name_c_a) { FONTCHARACTER file_name_f[30]; char file_name_c[30]; int file_h; sprintf (file_name_c,"\\\\crd0\\ZDM\\%s",file_name_c_a); CharToFonts3(file_name_c,file_name_f); file_h = Bfile_OpenFile (file_name_f,_OPENMODE_READ); if(file_h>=0){ zdmroute_clr (&zdmroute); Bfile_ReadFile(file_h,&zdmroute,sizeof(ZDMROUTE),0); zdmroute.set = (ZDMPOINT*)calloc(zdmroute.size,sizeof(ZDMPOINT)); Bfile_ReadFile(file_h,zdmroute.set,sizeof(ZDMPOINT)*zdmroute.size,sizeof(ZDMROUTE)); Bfile_CloseFile (file_h); return 1; } return 0; }
int WriteINI(int file_ptr,int pos,char* Write,BYTE delay,BOOL init) { int bytesfree ; if (init == TRUE) { filesize = Bfile_GetFileSize(file_ptr) ; if (filesize < 0){ DebugS("获取文件大小\n失败! ") ; return -1 ; } write_ptr = malloc( filesize ) ; if (write_ptr == NULL){ DebugS("内存分配失败! ") ; return -1 ; } //Reopen and read the whole file file_ptr = Reopen(file_ptr) ; Bfile_ReadFile(file_ptr,write_ptr,filesize,-1) ; //Delete the file Bfile_CloseFile(file_ptr) ; //9750下无法使用Bfile_GetMediaFree,获取的闪存剩余字节总为0 Bfile_DeleteFile(configfile) ; } memodify(write_ptr, pos, Write) ; if (delay == NOW) { //Recreate the file if (Bfile_CreateFile(configfile, filesize) < 0) { DebugS("创建文件失败\n请重新上传 ") ; return -1 ; } file_ptr = Reopen(file_ptr) ; Bfile_WriteFile(file_ptr,write_ptr,filesize) ; if (write_ptr != NULL) free(write_ptr) ; } return Reopen(file_ptr) ; }
void *memory_load(char *adresse) { FONTCHARACTER *adr = memory_char2font(adresse); int handle, x, size; void *p; if((handle=Bfile_OpenFile(adr,_OPENMODE_READ))<0) { memory_error("load()","OpenFile()",handle); return NULL; } size = Bfile_GetFileSize(handle)+1; p = calloc(size,1); if(!p) { memory_error("load()","malloc()",1); Bfile_CloseFile(handle); free(adr); return NULL; } if((x=Bfile_ReadFile(handle,p,size,0))<0) { memory_error("load()","ReadFile()",x); Bfile_CloseFile(handle); free(adr); return NULL; } Bfile_CloseFile(handle); free(adr); return p; }
int l_get_line (SOURCE_FILE * sf) { int bytes_read = 0,in_str,e = 0; char * p; bytes_read = Bfile_ReadFile(sf->file,line,LINE_MAX,sf->pos); line[bytes_read] = '\0'; for (p=line;*p;++p) { if (*p=='\n') { *p = '\0'; ++p; if (*p=='\r') ++p; break; } else if (*p=='\0') break; } sf->pos += p - line ; p = line; in_str = FALSE; while(*p) { if (*p=='\"')in_str = !in_str; else if(*p=='#' && !in_str) break; ++p; } *p = '\0'; //error_line = line; if (sf->pos>=sf->size) return FALSE; else return TRUE; }
int upgradeINI(double version, int file_ptr, int pos) { void* rebuff_ptr = NULL; void* buff_prev = NULL; void* buff_next = NULL; int size ; int bytesfree ; char* Addto ; BYTE insert_flag = FALSE ; char Addto113[] = "Current_PLD = \\;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r\n\r\n" ; char Addto117[] = "Current_YS = EMP ;\r\nYS1 = XYF ;\r\nYS2 = BBBB ;\r\nYS3 = CCCC ;\r\nYS4 = DDDD ;\r\nYS5 = EEEE ;\r\nYS6 = FFFF ;\r\nYS7 = GGGG ;\r\nYS8 = HHHH ;\r\n\r\n" ; char Addto1171[] = "XLTYPE = 1.000 ;\r\nPJMODE = 1.000 ;\r\n" ; char Addto1172[] = "Current_HP = EMP ;" ; char Addto119[] = "\r\n\r\nCurrent_SD = EMP ;\r\nSD1 = AAAA ;\r\nSD2 = BBBB ;\r\nSD3 = CCCC ;\r\nSD4 = DDDD ;\r\nSD5 = EEEE ;\r\nSD6 = FFFF ;\r\nSD7 = GGGG ;\r\nSD8 = HHHH ;" ; Warning("升级中..",2) ; file_ptr = Reopen(file_ptr) ; if (version == 1.11){ Addto = Addto113 ; WriteINI(file_ptr, pos, "Version = 1.130 ;",NOW,TRUE) ; } else if (version == 1.13){ Addto = Addto117 ; WriteINI(file_ptr, pos, "Version = 1.170 ;",NOW,TRUE) ; } else if (version == 1.17){ Addto = Addto1171 ; WriteINI(file_ptr, pos, "Version = 1.171 ;",NOW,TRUE) ; insert_flag = TRUE ; } else if (version == 1.171){ Addto = Addto1172 ; WriteINI(file_ptr, pos, "Version = 1.172 ;",NOW,TRUE) ; } else if (version == 1.172){ Addto = Addto119 ; WriteINI(file_ptr, pos, "Version = 1.190 ;",NOW,TRUE) ; } else { Warning("错误的版本号!",2) ; return FALSE ; } //增加ini文件大小 size = Bfile_GetFileSize(file_ptr) ; rebuff_ptr = calloc( size+ strlen(Addto),sizeof(char)) ; if (insert_flag == TRUE){ buff_prev = calloc( allset.fpos.sk,sizeof(char)) ; buff_next = calloc( size-allset.fpos.sk,sizeof(char)) ; if (buff_prev == NULL || buff_next == NULL){ if (rebuff_ptr != NULL) free(rebuff_ptr) ; DebugS("申请内存失败!") ; return FALSE ; } } else if (rebuff_ptr == NULL){ DebugS("申请内存失败!") ; return FALSE ; } if (insert_flag == TRUE){ Bfile_ReadFile(file_ptr,buff_prev,allset.fpos.sk ,-1) ; //读取前半部分 Bfile_ReadFile(file_ptr,buff_next,size-allset.fpos.sk ,-1) ; //读取后半部分 } else Bfile_ReadFile(file_ptr,rebuff_ptr,size ,-1) ; Bfile_CloseFile(file_ptr) ; Bfile_DeleteFile(configfile) ; if (Bfile_CreateFile(configfile, size+strlen(Addto)) < 0) { if (rebuff_ptr != NULL) free(rebuff_ptr) ; if (buff_prev != NULL) free(buff_prev) ; if (buff_next != NULL) free(buff_next) ; DebugS("创建文件失败\n请重新上传 ") ; return FALSE ; } file_ptr = Reopen(file_ptr) ; if (insert_flag == TRUE) { strncat(rebuff_ptr,buff_prev,strlen(buff_prev)) ; //拼接 strncat(rebuff_ptr,Addto,strlen(Addto)) ; strncat(rebuff_ptr,buff_next,strlen(buff_next)) ; } else strncat(rebuff_ptr,Addto,strlen(Addto)) ; Bfile_WriteFile(file_ptr,rebuff_ptr,size+strlen(Addto)) ; if (rebuff_ptr != NULL) free(rebuff_ptr) ; if (buff_prev != NULL) free(buff_prev) ; if (buff_next != NULL) free(buff_next) ; Bfile_CloseFile(file_ptr) ; return TRUE ; }