Hola buenas tengo en siguiente codigo:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct stock{
int cod_Articulo;
int nivel_maximo;
int nivel_minimo;
int nivel_actual;
char proveedor[30];
int precio;
}regstock;
struct pedidos{
int cod_Articulo;
char proveedor[30];
int total_pedido;
}regpedidos;
int main()
{
FILE *stock,*pedidos;
stock = fopen("stock.dat","rb+");
pedidos = fopen("pedidos.dat","rb+");
if(stock == NULL || pedidos == NULL)
{
puts("Error al intentar leer los archivos");
}
else
{
while(!feof(stock))
{
fread(®stock,sizeof(regstock),1,stock);
if(regstock.nivel_actual<regstock.nivel_minimo)
{
regpedidos.cod_Articulo=regstock.cod_Articulo;
strcpy(regpedidos.proveedor,regstock.proveedor);
regpedidos.total_pedido=regstock.nivel_maximo-regstock.nivel_actual;
fwrite(®pedidos,sizeof(regpedidos),1,pedidos);
}
}
}
fclose(stock);
fclose(pedidos);
return 0;
}
Lo que quiero saber si este código esta bien, necesito leer el fichero stock, y si el nivel actual es menor que el nivel mínimo, grabar los datos en el fichero pedidos. El total_pedido es la cantidad máxima de pedido que hacer que hacer hasta llegar al nivel máximo.
Me refiero a que si mi código esta bien para leer un fichero, cumplir una condición y si es así, escribir datos en otro fichero. No puedo saber si anda ya que los ficheros stock y pedidos, no los tengo hay que imaginar que están hechos con contenido almacenado en su interior.
· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex
No deja de ser gracioso, que tu no quieras probar tu propio código, porque 'no tienes los ficheros' y en cambio pidas a los demás que lo 'prueben', que ni tienen los ficheros, ni lo hicieron.
Si no tienes ficheros, los creas, con valores ficticios y lo pruebas, como mínimo para asegurarte que no genera errores...
Luego, si altera un dato en una posición incorrecta o no, eso es algo que debes probar con un fichero 'original' (aunque sea una copia, por supuesto).
Aquí nadie tiene forma de saber si 'total' aparece en determinada posición o no.
En principio si tus ficheros contienen (en cada uno) solo registros y nada más que registros y de un solo tipo, no debería ser problemático, no hay que calcular desplazamientos debido a cabeceras ni irregularidades por la desimetría de determinados campos (los char son arrays de tamaño fijo, según declaraste en las estructuras)... así que puedes proceder a probar creando tu mismo unos ficheros, metiendo registros ficticios (pero con valores razonables).
Sólo si tienes errores y no logras localizarlos es cuando compete, reclamar ayuda.... ehmmmm... que tu código, no opera sobre una central nuclear, no requiere una supervisión previa y justificada para que lo pruebes... :laugh: :laugh: :laugh: