int LoadDB(void)
{
FILE *pfile;
int tempSize_str;
int count;
int temp;
#define fread_int(x) {fread(&x , 4 , 1, pfile); return x;}
//Zera os contadores
ZeroMemory(count_reg, 4);
//Abre o ficheiro em modo de leitura
if ((pfile = fopen("pfm_db.db", "rb")) == NULL)
return 0;
//Se fim do ficheiro termina a leitura
if (feof(pfile))
goto end;
//Leitura do nome do batalhão
ZeroMemory(batalhao, 255);
tempSize_str = fgetc(pfile); //Tamanho do nome do batalhao
fgets(batalhao, tempSize_str, pfile); //Nome do batalhao
if (feof(pfile))
goto end;
//Leitura do nome do companhia
ZeroMemory(companhia, 255);
tempSize_str = fgetc(pfile); //Tamanho do nome do companhia
fgets(companhia, tempSize_str, pfile); //Nome do companhia
if (feof(pfile))
goto end;
//Leitura dos postos
temp = 0;
count = count_reg[0] = fgetc(pfile); //Quantidade de postos
while ((count--)>0)
{
postos = (struct Lista *)malloc(sizeof(struct Lista)); //Aloca a estrutura na memoria
ZeroMemory(postos, sizeof(struct Lista)); //Zera a memoria para evitar erros
postos->prev = (struct Lista*)temp;
if(temp)
((struct Lista*)temp)->next = postos;
fread_int(postos->id); //Id do posto
tempSize_str = fgetc(pfile); //Tamanho do Nome
postos->nome = malloc(tempSize_str);
fgets(postos->nome, tempSize_str, pfile); //Nome do posto
temp = (int)postos;
}
if (feof(pfile))
goto end;
there is all code before