Haber si podéis echarme una mano! Gracias.
Aquí dejo el código en principio solo es de la función.
La cuestión de esta función es hacer compras automáticas desde un archivo "comprasxx".txt le pongo "manzanas 2" y lo que debe hacer es aumentar el inventario.
Código:
void compra_auto( int cont){
char fichero[10];
char fruta[20];
int cantidad = 0;
int existe = 0;
int i;
struct tfruteria frut;
if ((loog = fopen("log.txt", "a+")) == NULL){
printf ("Error en obertura del fitxer per a lectura.\n");
}
printf ("Dame el nombre del fichero: ");
scanf ("%s", fichero);
cmp = fopen (fichero, "r");
if (!cmp){
cmp = fopen("compras00.txt", "r");
printf ("No existe el archivo se cogera el archivo por defecto\n");
fscanf (cmp, "%s %d", fruta, &cantidad);
fclose (cmp);
if ((dat = fopen("fruites.dat", "rb+")) == NULL){
} else{
fflush(stdin);
rewind(dat);
fread (&frut, Mida, 1, dat);
i=1;
while (!feof(dat)){
if(strcmp(fruta,frut.nom)==0){
printf ("La fruta existe!!\n");
existe ++;
fprintf(loog,"Compra;%d;OK;%d;%d;%d\n",i,frut.quantitat, cantidad, frut.quantitat+cantidad);
fclose (loog);
frut.quantitat=frut.quantitat+cantidad;
printf ("Ahora el estoc de %s es de: %d", frut.nom, frut.quantitat);
} //if si fruta existe
i++;
fread (&frut, Mida, 1, dat);
}//while
if(existe == 0){
printf ("La fruta no existe!!\n");
}else if (existe == 1){
rewind(dat);
if(fwrite(&frut, Mida,1, dat) == 1)
printf("\n Fruita modificada!! ");
}else{
printf("No he pogut escriure el registre al buffer del fitxer\n");
fclose (dat);
}
}
}else{
printf ("El fichero si que existe se realizara las opciones oportunas\n");
fscanf (cmp, "%s %d", fruta, &cantidad);
fclose (cmp);
if ((dat = fopen("fruites.dat", "rb+")) == NULL){
} else{
fflush(stdin);
rewind(dat);
fread (&frut, Mida, 1, dat);
while (!feof(dat)){
if(strcmp(fruta,frut.nom)==0){
printf ("La fruta existe!!\n");
existe ++;
frut.quantitat=frut.quantitat+cantidad;
printf ("Ahora el estoc de %s es de: %d", frut.nom, frut.quantitat);
} //if si fruta existe
fread (&frut, Mida, 1, dat);
}//while
if(existe == 0){
printf ("La fruta no existe!!\n");
}else if (existe == 1){
rewind(dat);
if(fwrite(&frut, Mida,1, dat) == 1)
printf("\n Fruita modificada!! ");
}else{
printf("No he pogut escriure el registre al buffer del fitxer\n");
fclose (dat);
}
}
}//else
}//funcion