Bom domingo Pessoal,
Estou com um pequeno problema no meu código para validação de login.
Vou explicar melhor:
Tenho um janela Java que grava em um arquivo Binário com extensão .docx chamado login o meu usúario e senha assim LOGIN = SENHA ;
Tenho um código em C que recupera normalmente esse usuário e senha, a gravação está OK.
Depois em C tenho um código que faz a comparação desse login com o meu usuário cadastrado, caso forem o mesmo ele cópia o registro do usuário inteiro para um outro arquivo.
O código é esse abaixo…
O grande problema é que após o fread minha variavel Auxiliar do tipo usuario está retornando vazio.
[code]#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include “MinhaBiblioteca.h”
main()
{
usuario dados, auxiliar;
FILE *arquivoUsuario, *arquivoComparacao, *arquivoResposta;
char caractere, usuario[8] ="", senha[10]="";
int i;
arquivoComparacao = fopen(“C:/Alexandria/ArquivoTemporario/login.docx”,“rb”);
if(arquivoComparacao == NULL)
{
printf("\nARQUIVO NAO EXISTE… INFORME O LOGIN!");
fclose(arquivoComparacao);
exit(1);
}
while (!feof(arquivoComparacao))
{
// Recuperando o valor do campo "usuario"
i = 0;
do
{
caractere = fgetc(arquivoComparacao);
if (caractere != '=' && !feof(arquivoComparacao))
{
usuario[i] = caractere;
i++;
}
} while (caractere != '=' && !feof(arquivoComparacao));
// Recuperando o valor do campo "senha"
i = 0;
do
{
caractere = fgetc(arquivoComparacao);
if (caractere != ';' && !feof(arquivoComparacao))
{
senha[i] = caractere;
i++;
}
} while (caractere != ';' && !feof(arquivoComparacao));
}
strcpy(dados.login, usuario);
strcpy(dados.senha, senha);
//printf("\n\n## USUARIO E SENHA ## %s e %s", dados.login, dados.senha);
arquivoResposta = fopen(“C:/Alexandria/ArquivoTemporario/Usuarios.docx”,“wb”);
arquivoUsuario = fopen(“C:/Alexandria/ArquivoPrincipal/Usuarios.docx”,“rb”);
if(arquivoUsuario == NULL)
{
printf(“Arquivo é NULL”);
fclose(arquivoComparacao);
fclose(arquivoUsuario);
fclose(arquivoResposta);
exit(1);
}
fseek(arquivoUsuario,0*sizeof(usuario),SEEK_SET);
do
{
fread(&auxiliar,sizeof(usuario),1,arquivoUsuario);
if(strcmp(auxiliar.login, dados.login) == 0 && !feof(arquivoUsuario))
{
if(strcmp(auxiliar.senha, dados.senha) == 0 && !feof(arquivoUsuario))
{
fwrite(&auxiliar,sizeof(usuario),1,arquivoResposta);
printf("\nCOMPARACAO OK!");
break;// depois que achar interrompe a busca
}
}
}while(!feof(arquivoUsuario));
if(!feof(arquivoUsuario))
{
printf(“REGISTRO NAO EXISTE…”);
}
printf("\nFINALIZANDO LOGIN… !");
fclose(arquivoUsuario);
fclose(arquivoComparacao);
fclose(arquivoResposta);
getchar();
}
[/code]
Vou aguardar um resposta pessoal…
Obrigada!