int main (int argc, char *argv[]) {
 if(!argv[1] || !argv[2]) {
    fprintf(stderr,"Parametre manquant\n\t1 : Fichier lut .cha\n\t2 : Fichier de sauvegarde .res\n\t3 : Facultatif : emplacement de sauvegarde xfig si voulu\n");
    return 1;
  }
  FILE 
    *f=fopen(argv[1],"r"),
    *svr=fopen(argv[2],"w");
  
  if(!f || !svr) {
    fprintf(stderr,"Erreur ouverture fichier\n");
    return 1;
  }

  ListeChaine l;
  lecture_chaine(f,&l);

  //printf("### ARBRE ###\n");
  ABRe *abr=NULL;
  Reseau r3;
  r3.nbNoeuds=0; r3.LNoeuds=NULL;  r3.LCommodites=NULL;
  recree_reseau_ABRE(&l,&r3,&abr);
  //lecture_reseau(&r);
  ecrit_reseau_disque(&r3,svr);
  //affiche(abr);
  //aff(abr, 0);


  if(argv[3]) {
    FILE *xfig=fopen(argv[3],"w");
    ecrit_reseau_xfig(&r3,xfig,500,2);
    fclose(xfig);
    printf("Fichier rendu : %s\t %s\n", argv[2], argv[3]);
  }
  else
    printf("Fichier rendu : %s\n", argv[2]);

  printf("Fini\n");
  
  
  fclose(f);
  fclose(svr);
  return 0;
}
예제 #2
0
int main(int argc, char **argv)
{
    FILE *f = NULL;
    FILE *output = NULL;
    Reseau *R = NULL;
    ListeChaine *L = NULL;
    char *filename = NULL;
    int i;
    if (argc < 2) {
	leverErreur("Usage : ./convertres *.cha");
	return 1;
    }
    for (i = 1; i < argc; i++) {
	f = ouvrirFichier(argv[i]);
	if (f == NULL) {
	    continue;
	}
	R = creerReseau();
	L = creerListeChaine();
	lecture_chaine(f, L);
	recree_reseau(L, R);
	filename = basename(argv[i]);
	fprintf(stderr, "Conversion en réseau du fichier %s...\n",
		argv[i]);
	filename = strtok(filename, ".");
	filename = strcat(filename, ".res");
	output = fopen(filename, "w");
	if (!output) {
	    leverErreur("Erreur création fichier de sortie");
	    freeReseau(R);
	    freeListeChaine(L);
	    fermerFichier(f);
	    return 1;
	}
	ecrit_reseau_disque(R, output);
	fermerFichier(output);
	fermerFichier(f);
	freeReseau(R);
	freeListeChaine(L);
    }
    return 0;
}