From df9b1b3c581850aa7109a46ebe71835ed031f2e3 Mon Sep 17 00:00:00 2001
From: Darius <darius.gomesdes@hes-so.ch>
Date: Thu, 23 Jan 2025 17:57:19 +0100
Subject: [PATCH] ajoute fonction qui encode en morse

---
 src/morse.c | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

diff --git a/src/morse.c b/src/morse.c
index 7a26d0c..524b4e4 100644
--- a/src/morse.c
+++ b/src/morse.c
@@ -68,12 +68,38 @@ struct node_t * pushTree(struct node_t * tree, char letter, char * code){
 }
 
 
-char searchCodeTree(struct node_t * tree, char letter, char* code_out){}
 
-struct node_t * encodeMorse(struct node_t * tree, char * path){}
+struct node_t * encodeMorse(struct node_t * tree, char * path){
+    FILE *f = fopen(path, "r");
+    FILE *fout = fopen("result_encode.txt", "w");
+    char buffer;
+    char code[6];
+    if (f != NULL) {
+        while ((buffer = fgetc(f)) != EOF) {
+            if (buffer != ' ' && buffer != '\n') {
+                strcpy(code, "");
+                searchCodeTree(tree, buffer, code);
+                fwrite(code, sizeof(char), strlen(code), fout);
+                fwrite(" ", sizeof(char), 1, fout);
+            } else {
+                if (buffer == ' ') {
+                    fwrite(" / ", sizeof(char), 3, fout);
+                } else {
+                    fwrite(&buffer, sizeof(char), 1, fout);
+                }
+            }
+        }
+        fclose(fout);
+        fclose(f);
+        return tree;
+    }
+    return NULL;
+}
 
 void decodeMorse(struct node_t * tree, char * path){}
 
+char searchCodeTree(struct node_t * tree, char letter, char* code_out){}
+
 void printTree(struct node_t * tree, int depth){
     if (tree == NULL) {
         return;
-- 
GitLab