Fix small issue in the C and the JS last push

This commit is contained in:
2023-06-14 11:29:07 +02:00
parent 0a9cf6af91
commit d9ddd89ed0
4 changed files with 46 additions and 43 deletions

View File

@@ -49,10 +49,6 @@ void addMovie(struct Filmotheque* filmotheque, struct Movie* movie) {
node->children[director[i] - 'a'] = createEmptyNodeTrie();
node = node->children[director[i] - 'a'];
}
else if (node->children[director[i] - 'a'] == NULL) {
node->children[director[i] - 'a'] = createEmptyNodeTrie();
node = node->children[director[i] - 'a'];
}
else {
node = node->children[director[i] - 'a'];
}
@@ -98,7 +94,7 @@ void initFilmo(char* nameFile,struct List** table,struct Filmotheque* filmo){
fichier = fopen(nameFile, "r");
//Vérification si on a bien ouvert la BDD
if (fichier == NULL) {
printf("Erreur lors de l'ouverture du fichier");
printf("Erreur lors de l'ouverture du fichier BD\n");
exit(1);
}
//Contient la ligne ou l'on est rendu dans le fichier
@@ -113,7 +109,7 @@ void initFilmo(char* nameFile,struct List** table,struct Filmotheque* filmo){
char* time = strtok(NULL, ";");
char* category = strtok(NULL, ";");
//Enlever le \n\r à la fin pour le remplacer par un \0
category[strlen(category) - 2] = '\0';
category[strlen(category) - 1] = '\0';
//On créer le film pour après l'ajouter dans les structures
struct Movie* movie = createMovie(director, name, time,category);
//Ajout dans la table
@@ -132,11 +128,41 @@ struct List* searchByDirector(struct Filmotheque* filmotheque, char* director){
struct NodeTrie* node = filmotheque->director;
//On boucle pour trouver notre réalisateur
for(int i = 0; i < strlen(director); i++){
if(node->children[director[i] - 'a'] == NULL){
return copy;
//On vérifie si le réalisateur existe
//Verifie si la lettre est un espace
if(director[i] == ' '){
if(node->children[28] == NULL){
return copy;
}
//On avance dans le NodeTrie
node = node->children[28];
}
//Verifie si la lettre est un -
else if(director[i] == '-'){
if(node->children[26] == NULL){
return copy;
}
//On avance dans le NodeTrie
node = node->children[26];
}
//Verifie si la lettre est un '
else if(director[i] == '\''){
if(node->children[27] == NULL){
return copy;
}
//On avance dans le NodeTrie
node = node->children[27];
}
else if(node->children[director[i] - 'a'] == NULL){
if(node->children[director[i] - 'a'] == NULL){
return copy;
}
//On avance dans le NodeTrie
node = node->children[director[i] - 'a'];
}
else{
node = node->children[director[i] - 'a'];
}
//On avance dans le NodeTrie
node = node->children[director[i] - 'a'];
}
//Si on arrive au bout de son nom on copie sa liste pour la renvoyer
if(node->isName){
@@ -203,8 +229,7 @@ struct List* searchByFilm(struct List* table[LENGTH], char* name){
//Fonction qui peremet de mettre un mot en minuscule
void toLowercase(char* str) {
int i;
for (i = 0; str[i] != '\0'; i++) {
for (int i = 0; str[i] != '\0'; i++) {
str[i] = tolower(str[i]);
}
}
@@ -223,14 +248,14 @@ int readRequest(char* request, struct List* tableau[LENGTH], struct Filmotheque*
fichier = fopen(request, "r");
if (fichier == NULL) {
printf("Erreur lors de l'ouverture du fichier2");
printf("Erreur lors de l'ouverture du fichier de requête\n");
exit(1);
}
char line[NUMBER_OF_CHAR];
char *fonction;
char *argument;
char* fonction;
char* argument;
//On récupère la fonction + l'argument
while (fgets(line, sizeof(line), fichier) != NULL) {
@@ -322,13 +347,14 @@ void deleteFilmotheque(struct Filmotheque* filmotheque, struct List* table[LENGT
free(filmotheque);
}
//Fonction qui permet de créer les fichier ready et result
void printResultInFile(struct List* result, double time){
//On ouvre le fichier result
FILE *fichier;
fichier = fopen("results.txt", "w");
if (fichier == NULL) {
printf("Erreur lors de l'ouverture du fichier");
printf("Erreur lors de l'ouverture du fichier result\n");
exit(1);
}
@@ -350,7 +376,8 @@ void printResultInFile(struct List* result, double time){
for(int i=0; i<length; i++){
//Pas supprimer le dernier caractere de categorie
int categoryLength = strlen(inter->movie->category);
fprintf(fichier,"%s;%s;%s;%.*s\n",inter->movie->director,inter->movie->name,inter->movie->time,categoryLength,inter->movie->category);
//On print le film dans le fichier result, composé de son titre, son réalisateur, sa catégorie et sa durée
fprintf(fichier,"%s;%s;%s;%.*s\n",inter->movie->name,inter->movie->director,inter->movie->time,categoryLength+1,inter->movie->category);
inter = inter->next;
}
fclose(fichier);

View File

@@ -1 +0,0 @@
searchByDirector;Olsson

View File

@@ -43,7 +43,7 @@ function readFileByName(fileName){
setTimeout(() => {
xhr.open("GET", fileName, false);
xhr.send(null);
});
}, 1000);
}while(xhr.status === 404);

View File

@@ -128,30 +128,7 @@ function returnToHome(){
window.location.href = "index.html";
}
// ------- WRITE FILE -------
function writeFile(id_form,func) {
let element = document.createElement('a');
let text1 = document.getElementById(id_form);
let count = text1.elements.length;
let textToSave = func;
for(let i = 0;i<count-1;i++){
textToSave += ";" + text1[i].value;
}
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(textToSave));
element.setAttribute('download', 'request.txt');
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
// text1.submit();
}
// -------------------------
// ----------WRITE FILE STOP----------
@@ -197,7 +174,7 @@ function readAndDisplay() {
// Retire la première ligne du tableau (temps d'exécution)
films.shift();
// Vérifie si aucun film n'a été trouvé
if (films.length === 0) {
if (films.length <= 1) {
let alert = document.getElementById("result");
alert.innerHTML = "Aucun film trouvé";
alert.style.display = "block";