Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdlib.h>
- #include<stdio.h>
- #include<string.h>
- #include "nomenclature.h"
- #define TMP_STR_SIZE 256
- #define TAILLEMAX 1000
- /*int lit_nomenclature(Nomenclature* *N, char *nom_fic){
- FILE *f = fopen(nom_fic,"r");
- if (!f){
- printf("Erreur lors de l'ouverture du fichier %s\n",nom_fic);
- return (int)NULL;
- }else{
- int i, occ, num, nbpiece;
- float poids;
- char ligne[TMP_STR_SIZE], nom[40];
- fgets(ligne, TMP_STR_SIZE, f);
- sscanf(ligne,"%s",nom);
- fgets(ligne, TMP_STR_SIZE, f);
- sscanf(ligne,"%d",nom, &nbpiece);
- Nomenclature *N = init_nomenclature(nom, TAILLEMAX);
- while(feof(f)){
- //fscanf(f,"%s",ligne);
- //ajouter_Lmot(lm,ligne);
- }
- }
- fclose(f);
- return 1;
- }*/
- int lit_nomenclature(Nomenclature* *N, char* nom_fic)
- {
- FILE *f=fopen(nom_fic,"r");
- int i,occ,num,nbpiece;
- float poids;
- char line[TMP_STR_SIZE],nom[40];
- if (!f)
- {
- fprintf(stderr,"Impossible to read the file\n");
- return 0;
- }
- for(i=0;i<4;i++)
- fgets(line,TMP_STR_SIZE,f);
- sscanf(line,"%s %d",nom,&nbpiece);
- *N=init_nomenclature(nom,TAILLEMAX);
- for(i=0;i<nbpiece;i++)
- {
- fgets(line,TMP_STR_SIZE,f);
- sscanf(line,"%d %s %f",&num,nom,&poids);
- (*N)->Tab[i]=cree_piece_sans_composant(num,nom,poids);
- fgets(line,TMP_STR_SIZE,f);
- sscanf(line,"%d %d",&num,&occ);
- while(num!=-1 && occ!=-1){
- fgets(line,TMP_STR_SIZE,f);
- sscanf(line,"%d %d",&num,&occ);
- }
- }
- (*N)->nbpiece=nbpiece;
- rewind(f);
- fgets(line,TMP_STR_SIZE,f);
- fgets(line,TMP_STR_SIZE,f);
- for(i=0;i<nbpiece;i++)
- {
- fgets(line,TMP_STR_SIZE,f);
- sscanf(line,"%d %d",&num,&occ);
- while(num!=-1 && occ!=-1){
- ajout_composant_piece((*N)->Tab[i],(*N)->Tab[recherche_piece_num(*N,num)],occ);
- fgets(line,TMP_STR_SIZE,f);
- sscanf(line,"%d %d",&num,&occ);
- }
- fgets(line,TMP_STR_SIZE,f);
- }
- return 1;
- }
- int sauvegarde_nomenclature(Nomenclature *N, char *nom_fic){
- FILE *f = fopen(nom_fic,"w");
- if (f == NULL){
- printf("Erreur lors de l'ouverture du fichier %s\n",nom_fic);
- return (int)NULL;
- }else{
- int i;
- Composant* temp;
- fprintf(f,"\n#made by Sanchez and Calle Viera\n\n");
- fprintf(f,"%s %d\n",N->nom,N->nbpiece);
- for(i=0; i<N->nbpiece; i++){
- fprintf(f, "%d %s %.2f", N->Tab[i]->num,N->Tab[i]->nom,N->Tab[i]->poids);
- temp=N->Tab[i]->L_composant;
- while(temp->suiv){
- if(temp->p->num && temp->occ){
- fprintf(f, "\n\t%d %d",temp->p->num, temp->occ);
- temp=temp->suiv;
- }
- }
- fprintf(f, "\n\t-1 -1\n");
- }
- }
- fclose(f);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement