main.c 1.89 KB
// --------------------------------------------------------
// Projet IMA3 2019 - Lecture d'une bibliothèque
// Décompte du nombre de fautes d'orthographe dans un texte
// Normand Quentin & Rouillé Guillaume
// --------------------------------------------------------

#include "tree.h"

int main(int argc, char *argv[])
{
  init_pgrm();
  Node tree = NULL;
  int error = 0; // compteur d'erreurs
  int correct = 0; // compteur de corrections effectuées
  FILE* fp_lib;
  FILE* fp_txt;

  if(argc < 3)
    {
      printf("Le nombre d'arguments est incorrect. Veuillez réessayer.\n");
      return EXIT_FAILURE;
    }
  
  fp_lib = fopen(argv[argc-2], "r"); // ouverture du fichier bibliothèque en mode lecture
  fp_txt = fopen(argv[argc-1], "r+"); // ouverture du fichier à analyser en mode lecture/écriture

  if(fp_lib==NULL || fp_txt==NULL)
    {
      printf("Erreur de lecture d'un des fichiers passés en paramètres.\n");
      return EXIT_FAILURE;
    }
  
  init_tree(&tree); // initialisation de l'arbre indexé
  read_lib(fp_lib, &tree); // lecture de la bibliothèque
  read_txt(fp_txt, &tree, &error, &correct); // analyse du fichier et corrections éventuelles

  // Si vous souhaitez imprimer l'arbre indexé complet :
  //char word[MAX] = "";
  //print_tree(tree, 0, word);

  // Impression du nombre d'erreurs
  if(error<2) printf("Dans le texte %s, %d mot n'est pas dans le dictionnaire %s.\n", argv[argc-1], error, argv[argc-2]);
  else printf("Dans le texte %s, %d mots ne sont pas dans le dictionnaire %s.\n", argv[argc-1], error,  argv[argc-2]);

  // Impression du nombre de corrections
  if(correct<2) printf("%d a été corrigé.\n", correct);
  else printf("%d ont été corrigés.\n", correct);

  free_tree(&tree); // Libération de l'espace mémoire
  fclose(fp_lib); // Fermeture des fichiers texte
  fclose(fp_txt);
  return EXIT_SUCCESS;
}