1
C / C++ / [Ayuda] Ficheros en C
« en: Junio 08, 2014, 06:02:27 pm »
Muy buenas a todos, estoy haciendo un programa en C que añade trabajadores, los guarda en un fichero, los muestras, los modifica etc.
Tengo mucho código avanzado pero tengo pequeños errores, por ejemplo si agrego más de 1 trabajar en un fichero solo se me guarda el último introducido.
Luego tengo otros errores como guardar en un archivo "log.txt" los cambios que se van haciendo.
Sin más que decir, les dejo el código y una captura para que vean lo que tengo.
Muchas gracias!
Tengo mucho código avanzado pero tengo pequeños errores, por ejemplo si agrego más de 1 trabajar en un fichero solo se me guarda el último introducido.
Luego tengo otros errores como guardar en un archivo "log.txt" los cambios que se van haciendo.
Sin más que decir, les dejo el código y una captura para que vean lo que tengo.
Muchas gracias!
Código: C
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <windows.h>
- #include <time.h>
- #include "fcntl.h"
- #include "conio.h"
- #define FALSE 0
- #define TRUE 1
- #define MAX_TREB 150
- #define PRS(x) printf ("%s\n",x)
- //STRUCT
- typedef struct{
- char nomTreballador[20];
- char cognomClient[20];
- int dni;
- int any;
- char categoria[20];
- int sou;
- } treballadors;
- treballadors treb[MAX_TREB];
- FILE *logg;
- int mida = sizeof(treballadors);
- // DECLARACIÓN DE VARIABLES
- int nouTreballador();
- int GravarDades();
- int mostrarTreballadors();
- // int treballadorCategoria();
- int modificarDades();
- int ficheroLog();
- /************* MENU PRINCIPAL ************/
- int main() {
- int continua, i;
- int opc=1;
- int cantidad=0;
- while(opc!=0){
- switch(opc) {
- case 1:
- cantidad = nouTreballador();
- break;
- case 2:
- GravarDades(cantidad);
- break;
- case 3:
- // if (cantidad > 0) mostrarTreballadors();
- mostrarTreballadors();
- //else printf("\nAntes tienes que introducir trabajadores!");
- break;
- case 4:
- break;
- case 5:
- //if (cantidad > 0) modificarDades();
- modificarDades();
- //else printf("\nAntes tienes que introducir trabajadores!");
- break;
- case 6:
- break;
- case 7:
- ficheroLog();
- break;
- case 0:
- return 0;
- break;
- } // Fin switch
- } // Fin while
- } // Fin main
- /**************************** NOU TREBALLADOR ************************************/
- int nouTreballador(){
- int neg=0,i=0;
- return (-1);
- }
- while ((i<MAX_TREB)&&(neg==0)){
- if(neg==0) i++;
- } // Fin while
- return i+1;
- }// Fin
- /***************************************** GRAVAR DADES *********************************************/
- int GravarDades(j){
- FILE *fp;
- int esborrar,i;
- esborrar=1;
- }else{
- if (esborrar==1){
- }
- return(-1);
- } // Fin else
- } // Fin
- /*************************** MOSTRAR TRABAJADORES ***********************************/
- int mostrarTreballadors(){
- treballadors treb;
- FILE *fp;
- }
- else {
- printf("\n%s \t%s \t %i \t%i \t%s \t%i ", treb.nomTreballador, treb.cognomClient, treb.dni, treb.any, treb.categoria, treb.sou);
- }
- } // Fin
- /************************************** MODIFICAR DATOS *****************************************/
- int modificarDades(){
- int NumReg;
- FILE *fp;
- int mida = sizeof(treballadors);
- treballadors treb, nouTreb; //fruites fru, nouFru;
- return(-1);
- }
- if (nouTreb.dni == 0) nouTreb.dni=treb.dni;
- if (nouTreb.any == 0) nouTreb.any=treb.any;
- if (nouTreb.sou == 0) nouTreb.sou=treb.sou;
- }else printf("No he podido ir a este registro\n"); // No se ha podido posicionar sobre el registro o leerlo.
- } // Fin modificar datos
- /******************** VISUALIZAR FICHERO LOG ************************/
- int ficheroLog(){
- // FILE *fp;
- FILE *logg;
- int c;
- PRS ("Error al abrir el fichero\n");
- }
- }
- }// Fin