# Mkd (Extracteur de documents)/Comprendre les fichiers de projets
## Exercices pour se familiariser avec les fichiers de projets

Les fichiers de projets d'extension .prj ou .pj sont des fichiers qui contiennent la liste des fichiers (sources) pour générer les documents (cibles).
Les fichiers de la liste ont parfois des extensions différentes.
Si les fichier sont tous de même style de commentaires on peut imposer une des options impératives pour générer les documents, mais pour utiliser un fichier de projet il est nécessaire de préciser que le fichier source est un fichier de projet avec l'option -j souvent associé à l'option -f (find). Dans le cas où find ne trouve pas le type de fichier, les styles compilés sont proposés à la sortie standard (Terminal en général) L'option -j est compatible avec les options impératives.

#### Créer un fichier de projet manuellement

Projet exercice.prj ; à créer manuellement avec les fichiers disponibles asm.c cpp.c putchar.s
Manuellement on est maître de la liste des fichier et de l'ordre nécessaire au décodage.
Nom du fichier de projet exercice.prj ; dans l'ordre alphabétique:

#### Créer un fichier de projet avec les commandes système

Projet exercice.prj ; à créer avec les commandes de votre système d'exploitation; ls, dir.
* Avec terminal linux: ls
Fichier exercice.prj : La mise en ordre alphabétique est automatique.
* Avec terminal cmd Windows 7, dir: option /B: noms courts, et option /ON: tri alphabétique. Notez que le terminal PowerShell ne convient pas.
Fichier exercice.prj :

#### Créer un fichier de commandes pour :

Vous aurez copié les fichiers à éprouver dans le répertoire des essais . exécutez la commande mkd \? pour visualiser les extensions reconnues par votre mkd. Ces extensions dépendent des options de compilation.
Les fichiers sont écrits dans des langages de programmation différents, le but est de créer des documentations globales avec ou sans le finder (option -f).

##### Mettre à jour le fichier d'entête. header global

exercice.h
La commande doit trouver le type de fichier du projet exercice.prj avec l'option -f
Fichier exercice.h:

##### Mettre à jour l'organigramme de chaque fichier de programme

Pseudo-code; Code de repérage 'O',
asm.org, cpp.org, putchar.org
* mkd -Cstw O asm.c asm.org
* mkd -Cstw O cpp.c cpp.org
* mkd -Astw O putchar.asm putchar.org
(L'exemple putchar avec MASM est forcément sous MS-DOS)
Fichier putchar.org:
Notez que la première ligne est correcte: macro.asm, alors que les commentaires qui suivent sont précédés du caractère O du fait que toute la ligne est recopiée sauf le caractère ; (Ceci est dû à l'option de compilation FULL LINE): La copie de la ligne est entière le caractère de commentaire est remplacé par un espace ligne 256 du fichier asm.c. (Voir asm.struct de l'exercice suivant "Mettre à jour la structure de chaque fichier") Pour éviter ce qui pourrait être un inconvénient il suffit de recompiler mkd sans l'option FULL_LINE. Pour une bonne présentation on a toujours intérêt à écrire le pseudo-code sur des lignes séparées avec le caractère ; en première colonne.
Bug: Un des bugs connus est la fin de ligne qui se termine par EOF à la place de EOL (NL retour chariot)

##### Mettre à jour la structure de chaque fichier

avec le pseudo code. Code 'S' et 'O' et 'w',
asm.struct
mkd -Cswn OSw asm.c asm.struct
Fichier asm.struct (édité avec Bluefish)
Notez la fin de fichier avec le caractère ÿ qui témoigne d'une fin incorrecte sur EOF
putchar.struct
mkd -Aswn OSw putchar.asm putchar.struct
Notez la fin de fichier correcte qui témoigne d'une fin correcte sur EOL (New Line) Notez aussi qu'un des caractères n'est pas au format UTF-8 (le é de défini)

##### Mettre à jour la documentation globale pour les programmeurs

avec les dates de mise à jour etc. Code 'P'
exercice.info_programmeurs
mkd -fjstw P exercice.prj *.info_programmeurs

##### Mettre à jour de la documentation logicielle globale

(Conception détaillée, Tests unitaires, du cycle en V) Code 'D'
exercice.docu
mkd -fjst D exercice.prj *.docu