#include #include "gene.h" FILE *DataFile; extern char *DataFileName; extern Individual *Population; extern int PopulationSize; static char *bfp; htoi() { int v; for (v = 0; *bfp; bfp++) { if ('0' <= *bfp && *bfp <= '9') v = (v << 4) + *bfp - '0'; else if ('A' <= *bfp && *bfp <= 'F') v = (v << 4) + *bfp - 'A' + 10; else if ('a' <= *bfp && *bfp <= 'f') v = (v << 4) + *bfp - 'a' + 10; else { bfp++; return v; } } } void b_load() { int i, j, k; char buf[1300]; fseek(DataFile, 0L, 0); for (i = 0; i < PopulationSize && fgets(buf,1300,DataFile); i++) { bfp = buf; for (j = 0; j < GeneLen; j ++) { k = htoi(); Population[i].gene[j].state = (k >> 24) & 0xff; Population[i].gene[j].alpha = (k >> 16) & 0xff; Population[i].gene[j].beta = (k >> 8) & 0xff; Population[i].gene[j].gamma = k & 0xff; } } } void b_save() { int i, j; fseek(DataFile, 0L, 0); for (i = 0; i < PopulationSize; i ++) for (j = 0; j < GeneLen; j ++) fprintf(DataFile,"%02x%0x2%02x%02x%c", Population[i].gene[j].state, Population[i].gene[j].alpha, Population[i].gene[j].beta, Population[i].gene[j].gamma, ((j