|
u_c_pascal_to_html - John COLIBRI.
|
- mots clé: transformation - Pascal - Html Web - gestion de fichier ASCII -
utilitaire
- logiciel utilisé: Windows 98, Delphi 5.0
- matériel utilisé: Pentium 500Mhz, 128 M de mémoire
- champ d'application: Delphi 1 à 6 sur Windows, Kylix
- niveau: moyen en Pascal et Delphi
- uses: u_c_text_file, u_loaded, u_types_constants,
u_c_display, (u_c_basic_file, u_c_line, u_display_hex,
u_c_file_name, u_c_log, u_c_basic_object, u_strings,
u_dir)
- plan:
1 - Introduction
Pour présenter des articles sur Pascal et Delphi dans ce site, il me fallait
avant tout un utilitaire qui transforme les .PAS en code .HTML.
Pour Pascalissime, il y a longtemps que le brave ED avait réglé le problème:
- des balises 'début de programme' et 'fin de programme' marquaient le début
et la fin des codes .PAS importés
- ED se chargeait alors de numéroter les lignes et de cracher le Postscript
artistiquement décoré:
- mise en gras des mots clés
C'est ce type de transformation qu'il fallait donc demander à ED de faire
mais en générant du HTML.
1.2 - L'objectif
Dans le cadre de cet article, nous nous contenterons de présenter la
transformation de fichiers .PAS isolés, en supposant que le code .HTML généré
est importé (par copier / coller) dans les articles .HTML. L'utilitaire
présenté
- part d'un fichier ASCII classique (généré par NotePad ou par Delphi
- crée un fichier .HTML que vous pouvez visualiser avec un Browser quelconque
en cliquant dessus
2 - Utilisation
L'application p_test_c_pascal_to_html donne un exemple. Il suffit;
- d'importer u_c_pascal_to_html
- de créer la classe c_pascal_to_html et d'appeler la méthode
pascal_to_html:
with c_pascal_to_html.create_pascal_to_html('pascal', p_dir+ p_file_name) do
begin
transform_to_html;
Free;
end; // with c_text_file
|
2.2 - Répertoires et Directives de compilation
L'unité u_c_pascal_to_html est prévue pour être placée dans:
C:
programs
colibri_utilities
web
pascal_to_html
Vous pouvez naturellement changer cette organisation par Projet | Options |
Directories
Les directives de compilation sont:
- R+ (vérification des intervalles)
- S+ (vérification de la pile)
- pas d'optimisation
3 - Programmation
La lecture du fichier se fait en lisant un fichier ASCII par c_text (cf
l'article c_text_file).
Le texte est analysé lexicalement pour débiter le programme en symboles.
Le principe de cette analyse est toujours le même:
- une boucle pour sauter les caractères indésirables
- une boucle qui récupère dans une String les caractères utiles
Pour l'analyse du texte, les particularités classiques concernent:
Plusieurs points liés à la spec HTML ont nécessité quelques précautions:
En ce qui concerne les couleurs, je souhaitais avoir:
- les mots clés en capitales rouges et grasses
- les identificateurs en noir italique
- les chaînes littérales Pascal en bleu
- les commentaires Pascal de tout poil (soit // soit { soit (* ) en violet
Toutes ces couleurs sont en CONST et vous pouvez les changer si vous le
souhaitez. Une amélioration triviale consisterait à permettre la modification
par une procédure de la classe.
4 - Améliorations
Il serait possible
- d'incorporer ce programme dans l'utilitaire qui permet le changement de
répertoires avec un tDirectoryListBox, et le balayage récursif en utilisant
c_dirs
- de permettre l'inclusion de fichiers .PAS dans un fichier .TXT (par une
notation similaire à $INCLUDE, par exemple), ce qui permet la transformation
du .TXT en .HTML en une seule passe (c'est en vérité ce que fait le brave
ED)
5 - Télécharger
Vous pouvez télécharger:
Avec les mentions d'usage:
- j'apprécie tous les commentaires, remarques ou critiques
- signalez-moi les bugs que vous trouverez.
L'auteur
John COLIBRI est surtout intéressé par la
programmation en Pascal, Delphi et Kylix. Son site contient des articles, la
descriptions de ses livres, le programme des stages de formation qu'il
anime et son CV.
|