1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
typedef enum _PATH_TYPE {
PATH_FOLDER = 0,
PATH_FILE
} PATH_TYPE;
typedef struct _pathElement {
char *name; // nom du fichier/repertoire
PATH_TYPE type; // type : dossier ou fichier
pathElement* next; // pointeur vers le prochain élément
// => vaut NULL si on est à la fin de la liste du dossier
pathElement* firstChild; // pointeur vers le premier enfant de cet element (utilisé que pour les dossiers)
// => vaut NULL si pas d'enfant
void (*callBack)(void); // adresse de la fonction à executer si on lance la commande
} pathElement;
// *************************************************
// creation de l'arborescence suivante
// +--> folder1
// | |
// | +--> file2_1
// | |
// | +--> file2_2
// |
// +--> file1
// |
// +--> file2
// |
// +--> file3
// remarque : ROM => stocke la variable en ROM
ROM pathElement file3 = {
.name = "monFichier3.csv",
.type = PATH_FILE,
.next = NULL
.firstChild = NULL,
.callBack = myFunc3
}
ROM pathElement file2 = {
.name = "monFichier2.txt",
.type = PATH_FILE,
.next = &file3
.firstChild = NULL,
.callBack = myFunc2
}
ROM pathElement file1 = {
.name = "monFichier1.bat",
.type = PATH_FILE,
.next = &file2
.firstChild = NULL,
.callBack = myFunc1
}
ROM pathElement file2_2 = {
.name = "monFichier2_2.bat",
.type = PATH_FILE,
.next = NULL
.firstChild = NULL,
.callBack = myFunc2_2
}
ROM pathElement file2_1 = {
.name = "monFichier2_1.bat",
.type = PATH_FILE,
.next = &file2_2
.firstChild = NULL,
.callBack = myFunc2_1
}
ROM pathElement folder1 = {
.name = "monDossier",
.type = PATH_FOLDER,
.next = &file1
.firstChild = &file2_1,
.callBack = NULL
}
ROM pathElement* racine = &folder1; // premier élément de la liste
pathElement* elementSelected = NULL; // element en cours de selection
char pathNameSeleted[50] = ""; // nom du chemin actif |
Partager